summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 14:31:17 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 14:31:17 +0000
commit8020f71afd34d7696d7933659df2d763ab05542f (patch)
tree2fdf1b5447ffd8bdd61e702ca183e814afdcb4fc /build
parentInitial commit. (diff)
downloadnetdata-upstream/1.37.1.tar.xz
netdata-upstream/1.37.1.zip
Adding upstream version 1.37.1.upstream/1.37.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-xbuild-artifacts.sh27
-rw-r--r--build/m4/ax_c__generic.m428
-rw-r--r--build/m4/ax_c_lto.m421
-rw-r--r--build/m4/ax_c_mallinfo.m424
-rw-r--r--build/m4/ax_c_mallopt.m420
-rw-r--r--build/m4/ax_c_statement_expressions.m423
-rw-r--r--build/m4/ax_check_compile_flag.m450
-rw-r--r--build/m4/ax_check_enable_debug.m4122
-rw-r--r--build/m4/ax_gcc_func_attribute.m4223
-rw-r--r--build/m4/ax_pthread.m4522
-rw-r--r--build/m4/jemalloc.m475
-rw-r--r--build/m4/tcmalloc.m445
-rw-r--r--build/subst.inc22
-rw-r--r--build_external/README.md128
-rwxr-xr-xbuild_external/bin/clean-install.sh54
-rwxr-xr-xbuild_external/bin/make-install.sh8
-rw-r--r--build_external/clean-install-arch-debug.Dockerfile62
-rw-r--r--build_external/clean-install-arch-extras.Dockerfile58
-rw-r--r--build_external/clean-install-arch.Dockerfile54
-rw-r--r--build_external/clean-install.Dockerfile39
-rw-r--r--build_external/make-install.Dockerfile11
-rw-r--r--build_external/scenarios/aclk-testing/agent-compose.yml18
-rw-r--r--build_external/scenarios/aclk-testing/agent-valgrind-compose.yml18
-rw-r--r--build_external/scenarios/aclk-testing/agent_netdata.conf7115
-rw-r--r--build_external/scenarios/aclk-testing/configureVerneMQ.Dockerfile8
-rw-r--r--build_external/scenarios/aclk-testing/paho-compose.yml6
-rw-r--r--build_external/scenarios/aclk-testing/paho-inspection.py33
-rw-r--r--build_external/scenarios/aclk-testing/paho.Dockerfile12
-rw-r--r--build_external/scenarios/aclk-testing/vernemq-compose.yml6
-rw-r--r--build_external/scenarios/aclk-testing/vernemq.conf68
-rw-r--r--build_external/scenarios/gaps_hi/child-compose.yml13
-rw-r--r--build_external/scenarios/gaps_hi/child_guid1
-rw-r--r--build_external/scenarios/gaps_hi/child_stream.conf11
-rw-r--r--build_external/scenarios/gaps_hi/middle-compose.yml13
-rw-r--r--build_external/scenarios/gaps_hi/middle_guid1
-rw-r--r--build_external/scenarios/gaps_hi/middle_stream.conf23
-rw-r--r--build_external/scenarios/gaps_hi/min.conf6
-rw-r--r--build_external/scenarios/gaps_hi/parent-compose.yml13
-rw-r--r--build_external/scenarios/gaps_hi/parent_guid1
-rw-r--r--build_external/scenarios/gaps_hi/parent_stream.conf11
-rw-r--r--build_external/scenarios/gaps_lo/child-compose.yml14
-rw-r--r--build_external/scenarios/gaps_lo/child_guid1
-rw-r--r--build_external/scenarios/gaps_lo/child_stream.conf11
-rw-r--r--build_external/scenarios/gaps_lo/middle-compose.yml14
-rw-r--r--build_external/scenarios/gaps_lo/middle_guid1
-rw-r--r--build_external/scenarios/gaps_lo/middle_stream.conf20
-rw-r--r--build_external/scenarios/gaps_lo/mostly_off.conf964
-rw-r--r--build_external/scenarios/gaps_lo/parent-compose.yml13
-rw-r--r--build_external/scenarios/gaps_lo/parent_guid1
-rw-r--r--build_external/scenarios/gaps_lo/parent_stream.conf12
-rw-r--r--build_external/scenarios/only-agent/docker-compose.yml8
-rw-r--r--build_external/scenarios/parent-child/child_stream.conf10
-rw-r--r--build_external/scenarios/parent-child/docker-compose.yml23
-rw-r--r--build_external/scenarios/parent-child/parent_stream.conf7
54 files changed, 10092 insertions, 0 deletions
diff --git a/build-artifacts.sh b/build-artifacts.sh
new file mode 100755
index 0000000..a759efd
--- /dev/null
+++ b/build-artifacts.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+BASENAME="netdata-$(git describe)"
+
+mkdir -p artifacts
+
+autoreconf -ivf
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/libexec \
+ --with-zlib \
+ --with-math \
+ --with-user=netdata \
+ CFLAGS=-O2
+make dist
+mv "${BASENAME}.tar.gz" artifacts/
+
+USER="" ./packaging/makeself/build-x86_64-static.sh
+
+cp packaging/version artifacts/latest-version.txt
+
+cd artifacts || exit 1
+ln -s "${BASENAME}.tar.gz" netdata-latest.tar.gz
+ln -s "${BASENAME}.gz.run" netdata-latest.gz.run
+sha256sum -b ./* > "sha256sums.txt"
diff --git a/build/m4/ax_c__generic.m4 b/build/m4/ax_c__generic.m4
new file mode 100644
index 0000000..0c4dd52
--- /dev/null
+++ b/build/m4/ax_c__generic.m4
@@ -0,0 +1,28 @@
+# https://lists.gnu.org/archive/html/autoconf-commit/2012-12/msg00004.html
+# AC_C__GENERIC
+# -------------
+# Define HAVE_C__GENERIC if _Generic works, a la C11.
+AN_IDENTIFIER([_Generic], [AC_C__GENERIC])
+AC_DEFUN([AC_C__GENERIC],
+[AC_CACHE_CHECK([for _Generic], ac_cv_c__Generic,
+[AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[int
+ main (int argc, char **argv)
+ {
+ int a = _Generic (argc, int: argc = 1);
+ int *b = &_Generic (argc, default: argc);
+ char ***c = _Generic (argv, int: argc, default: argv ? &argv : 0);
+ _Generic (1 ? 0 : b, int: a, default: b) = &argc;
+ _Generic (a = 1, default: a) = 3;
+ return a + !b + !c;
+ }
+ ]])],
+ [ac_cv_c__Generic=yes],
+ [ac_cv_c__Generic=no])])
+if test $ac_cv_c__Generic = yes; then
+ AC_DEFINE([HAVE_C__GENERIC], 1,
+ [Define to 1 if C11-style _Generic works.])
+fi
+])# AC_C__GENERIC
+
diff --git a/build/m4/ax_c_lto.m4 b/build/m4/ax_c_lto.m4
new file mode 100644
index 0000000..7e6bc01
--- /dev/null
+++ b/build/m4/ax_c_lto.m4
@@ -0,0 +1,21 @@
+# AC_C_LTO
+# -------------
+# Define HAVE_LTO if -flto works.
+AN_IDENTIFIER([lto], [AC_C_LTO])
+AC_DEFUN([AC_C_LTO],
+[AC_CACHE_CHECK([if -flto builds executables], ac_cv_c_lto,
+[AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#include <stdio.h>
+ int main(int argc, char **argv) {
+ return 0;
+ }
+ ]])],
+ [ac_cv_c_lto=yes],
+ [ac_cv_c_lto=no],
+ [ac_cv_c_lto=${ac_cv_c_lto_cross_compile}])])
+if test "${ac_cv_c_lto}" = "yes"; then
+ AC_DEFINE([HAVE_LTO], 1,
+ [Define to 1 if -flto works.])
+fi
+])# AC_C_LTO
diff --git a/build/m4/ax_c_mallinfo.m4 b/build/m4/ax_c_mallinfo.m4
new file mode 100644
index 0000000..af8d048
--- /dev/null
+++ b/build/m4/ax_c_mallinfo.m4
@@ -0,0 +1,24 @@
+# AC_C_MALLINFO
+# -------------
+# Define HAVE_C_MALLINFO if mallinfo() works.
+AN_IDENTIFIER([mallinfo], [AC_C_MALLINFO])
+AC_DEFUN([AC_C_MALLINFO],
+[AC_CACHE_CHECK([for mallinfo], ac_cv_c_mallinfo,
+[AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <malloc.h>]],
+ [[
+ struct mallinfo mi = mallinfo();
+ /* make sure that fields exists */
+ mi.uordblks = 0;
+ mi.hblkhd = 0;
+ mi.arena = 0;
+ ]]
+ )],
+ [ac_cv_c_mallinfo=yes],
+ [ac_cv_c_mallinfo=no])])
+if test $ac_cv_c_mallinfo = yes; then
+ AC_DEFINE([HAVE_C_MALLINFO], 1,
+ [Define to 1 if glibc mallinfo exists.])
+fi
+])# AC_C_MALLINFO
diff --git a/build/m4/ax_c_mallopt.m4 b/build/m4/ax_c_mallopt.m4
new file mode 100644
index 0000000..31c4fdc
--- /dev/null
+++ b/build/m4/ax_c_mallopt.m4
@@ -0,0 +1,20 @@
+# AC_C_MALLOPT
+# -------------
+# Define HAVE_C_MALLOPT if mallopt() works.
+AN_IDENTIFIER([mallopt], [AC_C_MALLOPT])
+AC_DEFUN([AC_C_MALLOPT],
+[AC_CACHE_CHECK([for mallopt], ac_cv_c_mallopt,
+[AC_LINK_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#include <malloc.h>
+ int main(int argc, char **argv) {
+ mallopt(M_ARENA_MAX, 1);
+ }
+ ]])],
+ [ac_cv_c_mallopt=yes],
+ [ac_cv_c_mallopt=no])])
+if test $ac_cv_c_mallopt = yes; then
+ AC_DEFINE([HAVE_C_MALLOPT], 1,
+ [Define to 1 if glibc mallopt exists.])
+fi
+])# AC_C_MALLOPT
diff --git a/build/m4/ax_c_statement_expressions.m4 b/build/m4/ax_c_statement_expressions.m4
new file mode 100644
index 0000000..fb259e7
--- /dev/null
+++ b/build/m4/ax_c_statement_expressions.m4
@@ -0,0 +1,23 @@
+# AC_C_STMT_EXPR
+# -------------
+# Define HAVE_STMT_EXPR if compiler has statement expressions.
+AN_IDENTIFIER([_Generic], [AC_C_STMT_EXPR])
+AC_DEFUN([AC_C_STMT_EXPR],
+[AC_CACHE_CHECK([for statement expressions], ac_cv_c_stmt_expr,
+[AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[int
+ main (int argc, char **argv)
+ {
+ int x = ({ int y = 1; y; });
+ return x;
+ }
+ ]])],
+ [ac_cv_c_stmt_expr=yes],
+ [ac_cv_c_stmt_expr=no])])
+if test $ac_cv_c_stmt_expr = yes; then
+ AC_DEFINE([HAVE_STMT_EXPR], 1,
+ [Define to 1 if compiler supports statement expressions.])
+fi
+])# AC_C_STMT_EXPR
+
diff --git a/build/m4/ax_check_compile_flag.m4 b/build/m4/ax_check_compile_flag.m4
new file mode 100644
index 0000000..c515602
--- /dev/null
+++ b/build/m4/ax_check_compile_flag.m4
@@ -0,0 +1,50 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+# Check whether the given FLAG works with the current language's compiler
+# or gives an error. (Warnings, however, are ignored)
+#
+# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
+# success/failure.
+#
+# If EXTRA-FLAGS is defined, it is added to the current language's default
+# flags (e.g. CFLAGS) when the check is done. The check is thus made with
+# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
+# force the compiler to issue an error when a bad flag is given.
+#
+# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
+#
+# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
+# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+# SPDX-License-Identifier: GPL-3.0
+
+#serial 3
+
+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
+[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
+ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
+ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
+ [AS_VAR_SET(CACHEVAR,[yes])],
+ [AS_VAR_SET(CACHEVAR,[no])])
+ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
+AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
+ [m4_default([$2], :)],
+ [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/build/m4/ax_check_enable_debug.m4 b/build/m4/ax_check_enable_debug.m4
new file mode 100644
index 0000000..db5bab2
--- /dev/null
+++ b/build/m4/ax_check_enable_debug.m4
@@ -0,0 +1,122 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_check_enable_debug.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CHECK_ENABLE_DEBUG([enable by default=yes/info/profile/no], [ENABLE DEBUG VARIABLES ...], [DISABLE DEBUG VARIABLES NDEBUG ...], [IS-RELEASE])
+#
+# DESCRIPTION
+#
+# Check for the presence of an --enable-debug option to configure, with
+# the specified default value used when the option is not present. Return
+# the value in the variable $ax_enable_debug.
+#
+# Specifying 'yes' adds '-g -O0' to the compilation flags for all
+# languages. Specifying 'info' adds '-g' to the compilation flags.
+# Specifying 'profile' adds '-g -pg' to the compilation flags and '-pg' to
+# the linking flags. Otherwise, nothing is added.
+#
+# Define the variables listed in the second argument if debug is enabled,
+# defaulting to no variables. Defines the variables listed in the third
+# argument if debug is disabled, defaulting to NDEBUG. All lists of
+# variables should be space-separated.
+#
+# If debug is not enabled, ensure AC_PROG_* will not add debugging flags.
+# Should be invoked prior to any AC_PROG_* compiler checks.
+#
+# IS-RELEASE can be used to change the default to 'no' when making a
+# release. Set IS-RELEASE to 'yes' or 'no' as appropriate. By default, it
+# uses the value of $ax_is_release, so if you are using the AX_IS_RELEASE
+# macro, there is no need to pass this parameter.
+#
+# AX_IS_RELEASE([git-directory])
+# AX_CHECK_ENABLE_DEBUG()
+#
+# LICENSE
+#
+# Copyright (c) 2011 Rhys Ulerich <rhys.ulerich@gmail.com>
+# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk>
+#
+# SPDX-License-Identifier: FSFAP
+
+#serial 5
+
+AC_DEFUN([AX_CHECK_ENABLE_DEBUG],[
+ AC_BEFORE([$0],[AC_PROG_CC])dnl
+ AC_BEFORE([$0],[AC_PROG_CXX])dnl
+ AC_BEFORE([$0],[AC_PROG_F77])dnl
+ AC_BEFORE([$0],[AC_PROG_FC])dnl
+
+ AC_MSG_CHECKING(whether to enable debugging)
+
+ ax_enable_debug_default=m4_tolower(m4_normalize(ifelse([$1],,[no],[$1])))
+ ax_enable_debug_is_release=m4_tolower(m4_normalize(ifelse([$4],,
+ [$ax_is_release],
+ [$4])))
+
+ # If this is a release, override the default.
+ AS_IF([test "$ax_enable_debug_is_release" = "yes"],
+ [ax_enable_debug_default="no"])
+
+ m4_define(ax_enable_debug_vars,[m4_normalize(ifelse([$2],,,[$2]))])
+ m4_define(ax_disable_debug_vars,[m4_normalize(ifelse([$3],,[NDEBUG],[$3]))])
+
+ AC_ARG_ENABLE(debug,
+ [AS_HELP_STRING([--enable-debug=]@<:@yes/info/profile/no@:>@,[compile with debugging])],
+ [],enable_debug=$ax_enable_debug_default)
+
+ # empty mean debug yes
+ AS_IF([test "x$enable_debug" = "x"],
+ [enable_debug="yes"])
+
+ # case of debug
+ AS_CASE([$enable_debug],
+ [yes],[
+ AC_MSG_RESULT(yes)
+ CFLAGS="${CFLAGS} -g -O0"
+ CXXFLAGS="${CXXFLAGS} -g -O0"
+ FFLAGS="${FFLAGS} -g -O0"
+ FCFLAGS="${FCFLAGS} -g -O0"
+ OBJCFLAGS="${OBJCFLAGS} -g -O0"
+ ],
+ [info],[
+ AC_MSG_RESULT(info)
+ CFLAGS="${CFLAGS} -g"
+ CXXFLAGS="${CXXFLAGS} -g"
+ FFLAGS="${FFLAGS} -g"
+ FCFLAGS="${FCFLAGS} -g"
+ OBJCFLAGS="${OBJCFLAGS} -g"
+ ],
+ [profile],[
+ AC_MSG_RESULT(profile)
+ CFLAGS="${CFLAGS} -g -pg"
+ CXXFLAGS="${CXXFLAGS} -g -pg"
+ FFLAGS="${FFLAGS} -g -pg"
+ FCFLAGS="${FCFLAGS} -g -pg"
+ OBJCFLAGS="${OBJCFLAGS} -g -pg"
+ LDFLAGS="${LDFLAGS} -pg"
+ ],
+ [
+ AC_MSG_RESULT(no)
+ dnl Ensure AC_PROG_CC/CXX/F77/FC/OBJC will not enable debug flags
+ dnl by setting any unset environment flag variables
+ AS_IF([test "x${CFLAGS+set}" != "xset"],
+ [CFLAGS=""])
+ AS_IF([test "x${CXXFLAGS+set}" != "xset"],
+ [CXXFLAGS=""])
+ AS_IF([test "x${FFLAGS+set}" != "xset"],
+ [FFLAGS=""])
+ AS_IF([test "x${FCFLAGS+set}" != "xset"],
+ [FCFLAGS=""])
+ AS_IF([test "x${OBJCFLAGS+set}" != "xset"],
+ [OBJCFLAGS=""])
+ ])
+
+ dnl Define various variables if debugging is disabled.
+ dnl assert.h is a NOP if NDEBUG is defined, so define it by default.
+ AS_IF([test "x$enable_debug" = "xyes"],
+ [m4_map_args_w(ax_enable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is enabled])])],
+ [m4_map_args_w(ax_disable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is disabled])])])
+ ax_enable_debug=$enable_debug
+])
diff --git a/build/m4/ax_gcc_func_attribute.m4 b/build/m4/ax_gcc_func_attribute.m4
new file mode 100644
index 0000000..fe22658
--- /dev/null
+++ b/build/m4/ax_gcc_func_attribute.m4
@@ -0,0 +1,223 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_GCC_FUNC_ATTRIBUTE(ATTRIBUTE)
+#
+# DESCRIPTION
+#
+# This macro checks if the compiler supports one of GCC's function
+# attributes; many other compilers also provide function attributes with
+# the same syntax. Compiler warnings are used to detect supported
+# attributes as unsupported ones are ignored by default so quieting
+# warnings when using this macro will yield false positives.
+#
+# The ATTRIBUTE parameter holds the name of the attribute to be checked.
+#
+# If ATTRIBUTE is supported define HAVE_FUNC_ATTRIBUTE_<ATTRIBUTE>.
+#
+# The macro caches its result in the ax_cv_have_func_attribute_<attribute>
+# variable.
+#
+# The macro currently supports the following function attributes:
+#
+# alias
+# aligned
+# alloc_size
+# always_inline
+# artificial
+# cold
+# const
+# constructor
+# constructor_priority for constructor attribute with priority
+# deprecated
+# destructor
+# dllexport
+# dllimport
+# error
+# externally_visible
+# flatten
+# format
+# format_arg
+# gnu_inline
+# hot
+# ifunc
+# leaf
+# malloc
+# noclone
+# noinline
+# nonnull
+# noreturn
+# nothrow
+# optimize
+# pure
+# unused
+# used
+# visibility
+# warning
+# warn_unused_result
+# weak
+# weakref
+#
+# Unsupported function attributes will be tested with a prototype returning
+# an int and not accepting any arguments and the result of the check might
+# be wrong or meaningless so use with care.
+#
+# LICENSE
+#
+# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
+#
+# SPDX-License-Identifier: FSFAP
+
+#serial 4
+
+AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
+ AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
+
+ AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ m4_case([$1],
+ [alias], [
+ int foo( void ) { return 0; }
+ int bar( void ) __attribute__(($1("foo")));
+ ],
+ [aligned], [
+ int foo( void ) __attribute__(($1(32)));
+ ],
+ [alloc_size], [
+ void *foo(int a) __attribute__(($1(1)));
+ ],
+ [always_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [artificial], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [cold], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [const], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [constructor_priority], [
+ int foo( void ) __attribute__((__constructor__(65535/2)));
+ ],
+ [constructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [deprecated], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [destructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [dllexport], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [dllimport], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [error], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [externally_visible], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [flatten], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [format], [
+ int foo(const char *p, ...) __attribute__(($1(printf, 1, 2)));
+ ],
+ [format_arg], [
+ char *foo(const char *p) __attribute__(($1(1)));
+ ],
+ [gnu_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [hot], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [ifunc], [
+ int my_foo( void ) { return 0; }
+ static int (*resolve_foo(void))(void) { return my_foo; }
+ int foo( void ) __attribute__(($1("resolve_foo")));
+ ],
+ [leaf], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [malloc], [
+ void *foo( void ) __attribute__(($1));
+ ],
+ [noclone], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [noinline], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [nonnull], [
+ int foo(char *p) __attribute__(($1(1)));
+ ],
+ [noreturn], [
+ void foo( void ) __attribute__(($1));
+ ],
+ [nothrow], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [optimize], [
+ __attribute__(($1(3))) int foo( void ) { return 0; }
+ ],
+ [pure], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [returns_nonnull], [
+ void *foo( void ) __attribute__(($1));
+ ],
+ [unused], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [used], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [visibility], [
+ int foo_def( void ) __attribute__(($1("default")));
+ int foo_hid( void ) __attribute__(($1("hidden")));
+ int foo_int( void ) __attribute__(($1("internal")));
+ int foo_pro( void ) __attribute__(($1("protected")));
+ ],
+ [warning], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [warn_unused_result], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weak], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weakref], [
+ static int foo( void ) { return 0; }
+ static int bar( void ) __attribute__(($1("foo")));
+ ],
+ [
+ m4_warn([syntax], [Unsupported attribute $1, the test may fail])
+ int foo( void ) __attribute__(($1));
+ ]
+ )], [])
+ ],
+ dnl GCC doesn't exit with an error if an unknown attribute is
+ dnl provided but only outputs a warning, so accept the attribute
+ dnl only if no warning were issued.
+ [AS_IF([test -s conftest.err],
+ [AS_VAR_SET([ac_var], [no])],
+ [AS_VAR_SET([ac_var], [yes])])],
+ [AS_VAR_SET([ac_var], [no])])
+ ])
+
+ AS_IF([test yes = AS_VAR_GET([ac_var])],
+ [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_FUNC_ATTRIBUTE_$1), 1,
+ [Define to 1 if the system has the `$1' function attribute])], [])
+
+ AS_VAR_POPDEF([ac_var])
+])
diff --git a/build/m4/ax_pthread.m4 b/build/m4/ax_pthread.m4
new file mode 100644
index 0000000..9f35d13
--- /dev/null
+++ b/build/m4/ax_pthread.m4
@@ -0,0 +1,522 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_pthread.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+#
+# DESCRIPTION
+#
+# This macro figures out how to build C programs using POSIX threads. It
+# sets the PTHREAD_LIBS output variable to the threads library and linker
+# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
+# flags that are needed. (The user can also force certain compiler
+# flags/libs to be tested by setting these environment variables.)
+#
+# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is
+# needed for multi-threaded programs (defaults to the value of CC
+# respectively CXX otherwise). (This is necessary on e.g. AIX to use the
+# special cc_r/CC_r compiler alias.)
+#
+# NOTE: You are assumed to not only compile your program with these flags,
+# but also to link with them as well. For example, you might link with
+# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
+# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
+#
+# If you are only building threaded programs, you may wish to use these
+# variables in your default LIBS, CFLAGS, and CC:
+#
+# LIBS="$PTHREAD_LIBS $LIBS"
+# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
+# CC="$PTHREAD_CC"
+# CXX="$PTHREAD_CXX"
+#
+# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
+# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
+# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#
+# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
+# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
+# PTHREAD_CFLAGS.
+#
+# ACTION-IF-FOUND is a list of shell commands to run if a threads library
+# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
+# is not found. If ACTION-IF-FOUND is not specified, the default action
+# will define HAVE_PTHREAD.
+#
+# Please let the authors know if this macro fails on any platform, or if
+# you have any other suggestions or comments. This macro was based on work
+# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
+# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
+# Alejandro Forero Cuervo to the autoconf macro repository. We are also
+# grateful for the helpful feedback of numerous users.
+#
+# Updated for Autoconf 2.68 by Daniel Richard G.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
+# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
+# Copyright (c) 2019 Marc Stevens <marc.stevens@cwi.nl>
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 31
+
+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
+AC_DEFUN([AX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_SED])
+AC_LANG_PUSH([C])
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on Tru64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
+ ax_pthread_save_CC="$CC"
+ ax_pthread_save_CFLAGS="$CFLAGS"
+ ax_pthread_save_LIBS="$LIBS"
+ AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
+ AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"])
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
+ AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
+ AC_MSG_RESULT([$ax_pthread_ok])
+ if test "x$ax_pthread_ok" = "xno"; then
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+ fi
+ CC="$ax_pthread_save_CC"
+ CFLAGS="$ax_pthread_save_CFLAGS"
+ LIBS="$ax_pthread_save_LIBS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try. Items with a "," contain both
+# C compiler flags (before ",") and linker flags (after ","). Other items
+# starting with a "-" are C compiler flags, and remaining items are
+# library names, except for "none" which indicates that we try without
+# any flags at all, and "pthread-config" which is a program returning
+# the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important. Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+# other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
+# (Note: HP C rejects this with "bad form for `-t' option")
+# -pthreads: Solaris/gcc (Note: HP C also rejects)
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+# doesn't hurt to check since this sometimes defines pthreads and
+# -D_REENTRANT too), HP C (must be checked before -lpthread, which
+# is present but should not be used directly; and before -mthreads,
+# because the compiler interprets this as "-mt" + "-hreads")
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case $host_os in
+
+ freebsd*)
+
+ # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+ # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+
+ ax_pthread_flags="-kthread lthread $ax_pthread_flags"
+ ;;
+
+ hpux*)
+
+ # From the cc(1) man page: "[-mt] Sets various -D flags to enable
+ # multi-threading and also sets -lpthread."
+
+ ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
+ ;;
+
+ openedition*)
+
+ # IBM z/OS requires a feature-test macro to be defined in order to
+ # enable POSIX threads at all, so give the user a hint if this is
+ # not set. (We don't define these ourselves, as they can affect
+ # other portions of the system API in unpredictable ways.)
+
+ AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
+ [
+# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
+ AX_PTHREAD_ZOS_MISSING
+# endif
+ ],
+ [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
+ ;;
+
+ solaris*)
+
+ # On Solaris (at least, for some versions), libc contains stubbed
+ # (non-functional) versions of the pthreads routines, so link-based
+ # tests will erroneously succeed. (N.B.: The stubs are missing
+ # pthread_cleanup_push, or rather a function called by this macro,
+ # so we could check for that, but who knows whether they'll stub
+ # that too in a future libc.) So we'll check first for the
+ # standard Solaris way of linking pthreads (-mt -lpthread).
+
+ ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
+ ;;
+esac
+
+# Are we compiling with Clang?
+
+AC_CACHE_CHECK([whether $CC is Clang],
+ [ax_cv_PTHREAD_CLANG],
+ [ax_cv_PTHREAD_CLANG=no
+ # Note that Autoconf sets GCC=yes for Clang as well as GCC
+ if test "x$GCC" = "xyes"; then
+ AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
+ [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
+# if defined(__clang__) && defined(__llvm__)
+ AX_PTHREAD_CC_IS_CLANG
+# endif
+ ],
+ [ax_cv_PTHREAD_CLANG=yes])
+ fi
+ ])
+ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
+
+
+# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
+
+# Note that for GCC and Clang -pthread generally implies -lpthread,
+# except when -nostdlib is passed.
+# This is problematic using libtool to build C++ shared libraries with pthread:
+# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
+# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
+# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
+# To solve this, first try -pthread together with -lpthread for GCC
+
+AS_IF([test "x$GCC" = "xyes"],
+ [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"])
+
+# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
+
+AS_IF([test "x$ax_pthread_clang" = "xyes"],
+ [ax_pthread_flags="-pthread,-lpthread -pthread"])
+
+
+# The presence of a feature test macro requesting re-entrant function
+# definitions is, on some systems, a strong hint that pthreads support is
+# correctly enabled
+
+case $host_os in
+ darwin* | hpux* | linux* | osf* | solaris*)
+ ax_pthread_check_macro="_REENTRANT"
+ ;;
+
+ aix*)
+ ax_pthread_check_macro="_THREAD_SAFE"
+ ;;
+
+ *)
+ ax_pthread_check_macro="--"
+ ;;
+esac
+AS_IF([test "x$ax_pthread_check_macro" = "x--"],
+ [ax_pthread_check_cond=0],
+ [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
+
+
+if test "x$ax_pthread_ok" = "xno"; then
+for ax_pthread_try_flag in $ax_pthread_flags; do
+
+ case $ax_pthread_try_flag in
+ none)
+ AC_MSG_CHECKING([whether pthreads work without any flags])
+ ;;
+
+ *,*)
+ PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
+ PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
+ AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"])
+ ;;
+
+ -*)
+ AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
+ PTHREAD_CFLAGS="$ax_pthread_try_flag"
+ ;;
+
+ pthread-config)
+ AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
+ AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
+ PTHREAD_CFLAGS="`pthread-config --cflags`"
+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+ ;;
+
+ *)
+ AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
+ PTHREAD_LIBS="-l$ax_pthread_try_flag"
+ ;;
+ esac
+
+ ax_pthread_save_CFLAGS="$CFLAGS"
+ ax_pthread_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+
+ # Check for various functions. We must include pthread.h,
+ # since some functions may be macros. (On the Sequent, we
+ # need a special flag -Kthread to make this header compile.)
+ # We check for pthread_join because it is in -lpthread on IRIX
+ # while pthread_create is in libc. We check for pthread_attr_init
+ # due to DEC craziness with -lpthreads. We check for
+ # pthread_cleanup_push because it is one of the few pthread
+ # functions on Solaris that doesn't have a non-functional libc stub.
+ # We try pthread_create on general principles.
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
+# if $ax_pthread_check_cond
+# error "$ax_pthread_check_macro must be defined"
+# endif
+ static void *some_global = NULL;
+ static void routine(void *a)
+ {
+ /* To avoid any unused-parameter or
+ unused-but-set-parameter warning. */
+ some_global = a;
+ }
+ static void *start_routine(void *a) { return a; }],
+ [pthread_t th; pthread_attr_t attr;
+ pthread_create(&th, 0, start_routine, 0);
+ pthread_join(th, 0);
+ pthread_attr_init(&attr);
+ pthread_cleanup_push(routine, 0);
+ pthread_cleanup_pop(0) /* ; */])],
+ [ax_pthread_ok=yes],
+ [])
+
+ CFLAGS="$ax_pthread_save_CFLAGS"
+ LIBS="$ax_pthread_save_LIBS"
+
+ AC_MSG_RESULT([$ax_pthread_ok])
+ AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
+
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+done
+fi
+
+
+# Clang needs special handling, because older versions handle the -pthread
+# option in a rather... idiosyncratic way
+
+if test "x$ax_pthread_clang" = "xyes"; then
+
+ # Clang takes -pthread; it has never supported any other flag
+
+ # (Note 1: This will need to be revisited if a system that Clang
+ # supports has POSIX threads in a separate library. This tends not
+ # to be the way of modern systems, but it's conceivable.)
+
+ # (Note 2: On some systems, notably Darwin, -pthread is not needed
+ # to get POSIX threads support; the API is always present and
+ # active. We could reasonably leave PTHREAD_CFLAGS empty. But
+ # -pthread does define _REENTRANT, and while the Darwin headers
+ # ignore this macro, third-party headers might not.)
+
+ # However, older versions of Clang make a point of warning the user
+ # that, in an invocation where only linking and no compilation is
+ # taking place, the -pthread option has no effect ("argument unused
+ # during compilation"). They expect -pthread to be passed in only
+ # when source code is being compiled.
+ #
+ # Problem is, this is at odds with the way Automake and most other
+ # C build frameworks function, which is that the same flags used in
+ # compilation (CFLAGS) are also used in linking. Many systems
+ # supported by AX_PTHREAD require exactly this for POSIX threads
+ # support, and in fact it is often not straightforward to specify a
+ # flag that is used only in the compilation phase and not in
+ # linking. Such a scenario is extremely rare in practice.
+ #
+ # Even though use of the -pthread flag in linking would only print
+ # a warning, this can be a nuisance for well-run software projects
+ # that build with -Werror. So if the active version of Clang has
+ # this misfeature, we search for an option to squash it.
+
+ AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
+ [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
+ [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
+ # Create an alternate version of $ac_link that compiles and
+ # links in two steps (.c -> .o, .o -> exe) instead of one
+ # (.c -> exe), because the warning occurs only in the second
+ # step
+ ax_pthread_save_ac_link="$ac_link"
+ ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
+ ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"`
+ ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
+ ax_pthread_save_CFLAGS="$CFLAGS"
+ for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
+ AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
+ CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
+ ac_link="$ax_pthread_save_ac_link"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+ [ac_link="$ax_pthread_2step_ac_link"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+ [break])
+ ])
+ done
+ ac_link="$ax_pthread_save_ac_link"
+ CFLAGS="$ax_pthread_save_CFLAGS"
+ AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
+ ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
+ ])
+
+ case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
+ no | unknown) ;;
+ *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
+ esac
+
+fi # $ax_pthread_clang = yes
+
+
+
+# Various other checks:
+if test "x$ax_pthread_ok" = "xyes"; then
+ ax_pthread_save_CFLAGS="$CFLAGS"
+ ax_pthread_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+
+ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+ AC_CACHE_CHECK([for joinable pthread attribute],
+ [ax_cv_PTHREAD_JOINABLE_ATTR],
+ [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
+ for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
+ [int attr = $ax_pthread_attr; return attr /* ; */])],
+ [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
+ [])
+ done
+ ])
+ AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
+ test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
+ test "x$ax_pthread_joinable_attr_defined" != "xyes"],
+ [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
+ [$ax_cv_PTHREAD_JOINABLE_ATTR],
+ [Define to necessary symbol if this constant
+ uses a non-standard name on your system.])
+ ax_pthread_joinable_attr_defined=yes
+ ])
+
+ AC_CACHE_CHECK([whether more special flags are required for pthreads],
+ [ax_cv_PTHREAD_SPECIAL_FLAGS],
+ [ax_cv_PTHREAD_SPECIAL_FLAGS=no
+ case $host_os in
+ solaris*)
+ ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
+ ;;
+ esac
+ ])
+ AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
+ test "x$ax_pthread_special_flags_added" != "xyes"],
+ [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
+ ax_pthread_special_flags_added=yes])
+
+ AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
+ [ax_cv_PTHREAD_PRIO_INHERIT],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
+ [[int i = PTHREAD_PRIO_INHERIT;
+ return i;]])],
+ [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+ [ax_cv_PTHREAD_PRIO_INHERIT=no])
+ ])
+ AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
+ test "x$ax_pthread_prio_inherit_defined" != "xyes"],
+ [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
+ ax_pthread_prio_inherit_defined=yes
+ ])
+
+ CFLAGS="$ax_pthread_save_CFLAGS"
+ LIBS="$ax_pthread_save_LIBS"
+
+ # More AIX lossage: compile with *_r variant
+ if test "x$GCC" != "xyes"; then
+ case $host_os in
+ aix*)
+ AS_CASE(["x/$CC"],
+ [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
+ [#handle absolute path differently from PATH based program lookup
+ AS_CASE(["x$CC"],
+ [x/*],
+ [
+ AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])
+ AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])])
+ ],
+ [
+ AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])
+ AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])])
+ ]
+ )
+ ])
+ ;;
+ esac
+ fi
+fi
+
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
+test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
+
+AC_SUBST([PTHREAD_LIBS])
+AC_SUBST([PTHREAD_CFLAGS])
+AC_SUBST([PTHREAD_CC])
+AC_SUBST([PTHREAD_CXX])
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test "x$ax_pthread_ok" = "xyes"; then
+ ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
+ :
+else
+ ax_pthread_ok=no
+ $2
+fi
+AC_LANG_POP
+])dnl AX_PTHREAD
diff --git a/build/m4/jemalloc.m4 b/build/m4/jemalloc.m4
new file mode 100644
index 0000000..c2008a8
--- /dev/null
+++ b/build/m4/jemalloc.m4
@@ -0,0 +1,75 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl SPDX-License-Identifier: Apache-2.0
+
+dnl
+dnl jemalloc.m4: Trafficserver's jemalloc autoconf macros
+dnl modified to skip other TS_ helpers
+dnl
+
+AC_DEFUN([TS_CHECK_JEMALLOC], [
+AC_ARG_WITH([jemalloc-prefix],
+ [AS_HELP_STRING([--with-jemalloc-prefix=PREFIX],[Specify the jemalloc prefix [default=""]])],
+ [
+ jemalloc_prefix="$withval"
+ ],[
+ if test "`uname -s`" = "Darwin"; then
+ jemalloc_prefix="je_"
+ else
+ jemalloc_prefix=""
+ fi
+ ]
+)
+AC_DEFINE_UNQUOTED([prefix_jemalloc], [${jemalloc_prefix}], [jemalloc prefix])
+
+enable_jemalloc=no
+AC_ARG_WITH([jemalloc], [AS_HELP_STRING([--with-jemalloc=DIR], [use a specific jemalloc library])],
+[
+ if test "$withval" != "no"; then
+ if test "x${enable_tcmalloc}" = "xyes"; then
+ AC_MSG_ERROR([Cannot compile with both jemalloc and tcmalloc])
+ fi
+ enable_jemalloc=yes
+ jemalloc_base_dir="$withval"
+ case "$withval" in
+ yes)
+ jemalloc_base_dir="/usr"
+ AC_MSG_CHECKING(checking for jemalloc includes standard directories)
+ ;;
+ *":"*)
+ jemalloc_include="`echo $withval |sed -e 's/:.*$//'`"
+ jemalloc_ldflags="`echo $withval |sed -e 's/^.*://'`"
+ AC_MSG_CHECKING(checking for jemalloc includes in $jemalloc_include libs in $jemalloc_ldflags)
+ ;;
+ *)
+ jemalloc_include="$withval/include"
+ jemalloc_ldflags="$withval/lib"
+ AC_MSG_CHECKING(checking for jemalloc includes in $withval)
+ ;;
+ esac
+ fi
+])
+
+has_jemalloc=0
+if test "$enable_jemalloc" != "no"; then
+ jemalloc_have_headers=0
+ jemalloc_have_libs=0
+ if test "$jemalloc_base_dir" != "/usr"; then
+ CFLAGS="${CFLAGS} -I${jemalloc_include}"
+ LDFLAGS="${LDFLAGS} -L${jemalloc_ldflags}"
+ LIBTOOL_LINK_FLAGS="${LIBTOOL_LINK_FLAGS} -R${jemalloc_ldflags}"
+ fi
+ func="${jemalloc_prefix}malloc_stats_print"
+ AC_CHECK_LIB(jemalloc, ${func}, [jemalloc_have_libs=1])
+ if test "$jemalloc_have_libs" != "0"; then
+ AC_CHECK_HEADERS([jemalloc/jemalloc.h], [jemalloc_have_headers=1])
+ fi
+ if test "$jemalloc_have_headers" != "0"; then
+ has_jemalloc=1
+ LIBS="${LIBS} -ljemalloc"
+ AC_DEFINE(has_jemalloc, [1], [Link/compile against jemalloc])
+ else
+ AC_MSG_ERROR([Couldn't find a jemalloc installation])
+ fi
+fi
+AC_SUBST(has_jemalloc)
+])
diff --git a/build/m4/tcmalloc.m4 b/build/m4/tcmalloc.m4
new file mode 100644
index 0000000..765d2ac
--- /dev/null
+++ b/build/m4/tcmalloc.m4
@@ -0,0 +1,45 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl SPDX-License-Identifier: Apache-2.0
+
+dnl
+dnl tcmalloc.m4: Trafficserver's tcmalloc autoconf macros
+dnl modified to skip other TS_ helpers
+dnl
+
+dnl This is kinda fugly, but need a way to both specify a directory and which
+dnl of the many tcmalloc libraries to use ...
+AC_DEFUN([TS_CHECK_TCMALLOC], [
+AC_ARG_WITH([tcmalloc-lib],
+ [AS_HELP_STRING([--with-tcmalloc-lib],[specify the tcmalloc library to use [default=tcmalloc]])],
+ [
+ with_tcmalloc_lib="$withval"
+ ],[
+ with_tcmalloc_lib="tcmalloc"
+ ]
+)
+
+has_tcmalloc=0
+AC_ARG_WITH([tcmalloc], [AS_HELP_STRING([--with-tcmalloc=DIR], [use the tcmalloc library])],
+[
+ if test "$withval" != "no"; then
+ if test "x${enable_jemalloc}" = "xyes"; then
+ AC_MSG_ERROR([Cannot compile with both tcmalloc and jemalloc])
+ fi
+ tcmalloc_have_lib=0
+ if test "x$withval" != "xyes" && test "x$withval" != "x"; then
+ tcmalloc_ldflags="$withval/lib"
+ LDFLAGS="${LDFLAGS} -L${tcmalloc_ldflags}"
+ LIBTOOL_LINK_FLAGS="${LIBTOOL_LINK_FLAGS} -rpath ${tcmalloc_ldflags}"
+ fi
+ AC_CHECK_LIB(${with_tcmalloc_lib}, tc_cfree, [tcmalloc_have_lib=1])
+ if test "$tcmalloc_have_lib" != "0"; then
+ LIBS="${LIBS} -l${with_tcmalloc_lib}"
+ has_tcmalloc=1
+ AC_DEFINE(has_tcmalloc, [1], [Link/compile against tcmalloc])
+ else
+ AC_MSG_ERROR([Couldn't find a tcmalloc installation])
+ fi
+ fi
+])
+AC_SUBST(has_tcmalloc)
+])
diff --git a/build/subst.inc b/build/subst.inc
new file mode 100644
index 0000000..3c97211
--- /dev/null
+++ b/build/subst.inc
@@ -0,0 +1,22 @@
+.in:
+ if sed \
+ -e 's#[@]localstatedir_POST@#$(localstatedir)#g' \
+ -e 's#[@]sbindir_POST@#$(sbindir)#g' \
+ -e 's#[@]pluginsdir_POST@#$(pluginsdir)#g' \
+ -e 's#[@]configdir_POST@#$(configdir)#g' \
+ -e 's#[@]libconfigdir_POST@#$(libconfigdir)#g' \
+ -e 's#[@]pkglibexecdir_POST@#$(pkglibexecdir)#g' \
+ -e 's#[@]cachedir_POST@#$(cachedir)#g' \
+ -e 's#[@]registrydir_POST@#$(registrydir)#g' \
+ -e 's#[@]varlibdir_POST@#$(varlibdir)#g' \
+ -e 's#[@]webdir_POST@#$(webdir)#g' \
+ -e 's#[@]libsysdir_POST@#$(libsysdir)#g' \
+ -e 's#[@]enable_aclk_POST@#$(enable_aclk)#g' \
+ -e 's#[@]enable_cloud_POST@#$(enable_cloud)#g' \
+ -e 's#[@]netdata_user_POST@#$(netdata_user)#g' \
+ $< > $@.tmp; then \
+ mv "$@.tmp" "$@"; \
+ else \
+ rm -f "$@.tmp"; \
+ false; \
+ fi
diff --git a/build_external/README.md b/build_external/README.md
new file mode 100644
index 0000000..d68e4d0
--- /dev/null
+++ b/build_external/README.md
@@ -0,0 +1,128 @@
+<!--
+title: "External build-system"
+date: 2020-03-31
+custom_edit_url: https://github.com/netdata/netdata/edit/master/build_external/README.md
+-->
+
+# External build-system
+
+This wraps the build-system in Docker so that the host system and the target system are
+decoupled. This allows:
+
+- Cross-compilation (e.g. linux development from macOS)
+- Cross-distro (e.g. using CentOS user-land while developing on Debian)
+- Multi-host scenarios (e.g. parent-child configurations)
+- Bleeding-edge scenarios (e.g. using the ACLK (**currently for internal-use only**))
+
+The advantage of these scenarios is that they allow **reproducible** builds and testing
+for developers. This is the first iteration of the build-system to allow the team to use
+it and get used to it.
+
+For configurations that involve building and running the agent alone, we still use
+`docker-compose` for consistency with more complex configurations. The more complex
+configurations allow the agent to be run in conjunction with parts of the cloud
+infrastructure (these parts of the code are not public), or with external brokers
+(such as VerneMQ for MQTT), or with other external tools (such as TSDB to allow the agent to
+export metrics). Note: no external TSDB scenarios are available in the first iteration,
+they will be added in subsequent iterations.
+
+This differs from the packaging dockerfiles as it designed to be used for local development.
+The main difference is that these files are designed to support incremental compilation in
+the following way:
+
+1. The initial build should be performed using `bin/clean-install.sh` to create a docker
+ image with the agent built from the source tree and installed into standard system paths
+ using `netdata-installer.sh`. In addition to the steps performed by the standard packaging
+ builds a manifest is created to allow subsequent builds to be made incrementally using
+ `make` inside the container. Any libraries that are required for 'bleeding-edge' development
+ are added on top of the standard install.
+2. When the `bin/make-install.sh` script is used the docker container will be updated with
+ a sanitized version of the current build-tree. The manifest will be used to line up the
+ state of the incoming docker cache with `make`'s view of the file-system according to the
+ manifest. This means the `make install` inside the container will only rebuild changes
+ since the last time the disk image was created.
+
+The exact improvement on the compile-cycle depends on the speed of the network connection
+to pull the netdata dependencies, but should shrink the time considerably. For example,
+on a macbook pro the initial install takes about 1min + network delay [Note: there is
+something bad happening with the standard installer at the end of the container build as
+it tries to kill the running agent - this is very slow and bad] and the incremental
+step only takes 15s. On a debian host with a fast network this reduces 1m30 -> 13s.
+
+## Examples
+
+1. Simple cross-compilation / cross-distro builds.
+
+```bash
+build_external/bin/clean-install.sh arch current
+docker run -it --rm arch_current_dev
+echo >>daemon/main.c # Simulate edit by touching file
+build_external/bin/make-install.sh arch current
+docker run -it --rm arch_current_dev
+```
+
+Currently there is no detection of when the installer needs to be rerun (really this is
+when the `autoreconf` / `configure` step must be rerun). Netdata was not written with
+multi-stage builds in mind and we need to work out how to do this in the future. For now
+it is up to you to know when you need to rerun the clean build step.
+
+```bash
+build_external/bin/clean-install.sh arch current
+build_external/bin/clean-install.sh ubuntu 19.10
+docker run -it --rm arch_current_dev
+echo >>daemon/main.c # Simulate edit by touching file
+build_external/bin/make-install.sh arch current
+docker run -it --rm arch_current_dev
+echo >>daemon/daemon.c # Simulate second edit step
+build_external/bin/make-install.sh arch current # Observe a single file is rebuilt
+build_external/bin/make-install.sh arch current # Observe both files are rebuilt
+```
+
+The state of the build in the two containers is independent.
+
+2. Single agent config in docker-compose
+
+This functions the same as the previous example but is wrapped in docker-compose to
+allow injection into more complex test configurations.
+
+```bash
+Distro=debian Version=10 docker-compose -f projects/only-agent/docker-compose.yml up
+```
+
+Note: it is possible to run multiple copies of the agent using the `--scale` option for
+`docker-compose up`.
+
+```bash
+Distro=debian Version=10 docker-compose -f projects/only-agent/docker-compose.yml up --scale agent=3
+```
+
+3. A simple parent-child scenario
+
+```bash
+# Need to call clean-install on the configs used in the parent-child containers
+docker-compose -f parent-child/docker-compose.yml up --scale agent_child1=2
+```
+
+Note: this is not production ready yet, but it is left in so that we can see how it behaves
+and improve it. Currently it produces the following problems:
+ * Only the base-configuration in the compose without scaling works.
+ * The containers are hard-coded in the compose.
+ * There is no way to separate the agent configurations, so running multiple agent child nodes with the same GUID kills
+ the parent which exits with a fatal condition.
+
+4. The ACLK
+
+This is for internal use only as it requires access to a private repo. Clone the vernemq-docker
+repo and follow the instructions within to build an image called `vernemq`.
+
+```bash
+build_external/bin/clean-install.sh arch current # Only needed first time
+docker-compose -f build_external/projects/aclk-testing/vernemq-compose.yml -f build_external/projects/aclk-testing/agent-compose.yml up --build
+```
+
+Notes:
+* We are currently limited to arch because of restrictions on libwebsockets
+* There is not yet a good way to configure the target agent container from the docker-compose command line.
+* Several other containers should be in this compose (a paho client, tshark etc).
+
+
diff --git a/build_external/bin/clean-install.sh b/build_external/bin/clean-install.sh
new file mode 100755
index 0000000..78d1f32
--- /dev/null
+++ b/build_external/bin/clean-install.sh
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+DISTRO="$1"
+VERSION="$2"
+BuildBase="$(cd "$(dirname "$0")" && cd .. && pwd)"
+
+# This is temporary - not all of the package-builder images from the helper-images repo
+# are available on Docker Hub. When everything falls under the "happy case" below this
+# can be deleted in a future iteration. This is written in a weird way for portability,
+# can't rely on bash 4.0+ to allow case fall-through with ;&
+
+if cat <<HAPPY_CASE | grep "$DISTRO-$VERSION"
+ opensuse-15.1
+ fedora-29
+ debian-9
+ debian-8
+ fedora-30
+ opensuse-15.0
+ ubuntu-19.04
+ centos-7
+ fedora-31
+ ubuntu-16.04
+ ubuntu-18.04
+ ubuntu-19.10
+ debian-10
+ centos-8
+ ubuntu-1804
+ ubuntu-1904
+ ubuntu-1910
+ debian-stretch
+ debian-jessie
+ debian-buster
+HAPPY_CASE
+then
+ docker build -f "$BuildBase/clean-install.Dockerfile" -t "${DISTRO}_${VERSION}_dev" "$BuildBase/.." \
+ --build-arg "DISTRO=$DISTRO" --build-arg "VERSION=$VERSION" \
+ --build-arg EXTRA_CFLAGS="-DACLK_SSL_ALLOW_SELF_SIGNED"
+else
+ case "$DISTRO-$VERSION" in
+ arch-current)
+ docker build -f "$BuildBase/clean-install-arch.Dockerfile" -t "${DISTRO}_${VERSION}_dev" "$BuildBase/.." \
+ --build-arg "DISTRO=$DISTRO" --build-arg "VERSION=$VERSION" \
+ --build-arg EXTRA_CFLAGS="-DACLK_SSL_ALLOW_SELF_SIGNED" # --no-cache
+ ;;
+ arch-extras) # Add valgrind to the container
+ docker build -f "$BuildBase/clean-install-arch-extras.Dockerfile" -t "${DISTRO}_${VERSION}_dev" "$BuildBase/.." \
+ --build-arg "DISTRO=$DISTRO" --build-arg "VERSION=$VERSION" \
+ --build-arg EXTRA_CFLAGS="-DACLK_SSL_ALLOW_SELF_SIGNED" # --no-cache
+ ;;
+ *)
+ echo "Unknown $DISTRO-$VERSION"
+ ;;
+ esac
+fi
diff --git a/build_external/bin/make-install.sh b/build_external/bin/make-install.sh
new file mode 100755
index 0000000..fe4f7c9
--- /dev/null
+++ b/build_external/bin/make-install.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+DISTRO="$1"
+VERSION="$2"
+BuildBase="$(cd "$(dirname "$0")" && cd .. && pwd)"
+
+docker build -f "$BuildBase/make-install.Dockerfile" -t "${DISTRO}_${VERSION}_dev:latest" "$BuildBase/.." \
+ --build-arg "DISTRO=${DISTRO}" --build-arg "VERSION=${VERSION}"
diff --git a/build_external/clean-install-arch-debug.Dockerfile b/build_external/clean-install-arch-debug.Dockerfile
new file mode 100644
index 0000000..046b144
--- /dev/null
+++ b/build_external/clean-install-arch-debug.Dockerfile
@@ -0,0 +1,62 @@
+FROM archlinux/base:latest
+
+# There is some redundancy between this file and the archlinux Dockerfile in the helper images
+# repo and also with the clean-install.Dockerfile. Once the help image is available on Docker
+# Hub this file can be deleted.
+RUN echo sdlsjdkls
+RUN pacman -Syyu --noconfirm
+RUN pacman --noconfirm --needed -S autoconf \
+ autoconf-archive \
+ autogen \
+ automake \
+ gcc \
+ make \
+ git \
+ libuv \
+ lz4 \
+ netcat \
+ openssl \
+ pkgconfig \
+ python \
+ libvirt \
+ cmake \
+ valgrind \
+ gdb
+
+ARG EXTRA_CFLAGS
+COPY . /opt/netdata/source
+WORKDIR /opt/netdata/source
+
+RUN git config --global user.email "root@container"
+RUN git config --global user.name "Fake root"
+
+# RUN make distclean -> not safe if tree state changed on host since last config
+# Kill everything that is not in .gitignore preserving any fresh changes, i.e. untracked changes will be
+# deleted but local changes to tracked files will be preserved.
+RUN if git status --porcelain | grep '^[MADRC]'; then \
+ git stash && git clean -dxf && (git stash apply || true) \
+ else \
+ git clean -dxf ; \
+ fi
+
+# Not everybody is updating distclean properly - fix.
+RUN find . -name '*.Po' -exec rm \{\} \;
+RUN rm -rf autom4te.cache
+RUN rm -rf .git/
+RUN find . -type f >/opt/netdata/manifest
+
+RUN CFLAGS="-Og -g -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -DNETDATA_INTERNAL_CHECKS=1\
+ -D_FORTIFY_SOURCE=2 -DNETDATA_VERIFY_LOCKS=1 ${EXTRA_CFLAGS}" ./netdata-installer.sh --require-cloud --disable-lto
+
+RUN ln -sf /dev/stdout /var/log/netdata/access.log
+RUN ln -sf /dev/stdout /var/log/netdata/debug.log
+RUN ln -sf /dev/stderr /var/log/netdata/error.log
+
+RUN printf >/opt/netdata/source/gdb_batch '\
+set args -D \n\
+handle SIG32 nostop \n\
+run \n\
+bt'
+
+#CMD ["/usr/sbin/valgrind", "--leak-check=full", "/usr/sbin/netdata", "-D"]
+CMD ["/usr/bin/gdb", "-x", "/opt/netdata/source/gdb_batch", "/usr/sbin/netdata"]
diff --git a/build_external/clean-install-arch-extras.Dockerfile b/build_external/clean-install-arch-extras.Dockerfile
new file mode 100644
index 0000000..1d18f7a
--- /dev/null
+++ b/build_external/clean-install-arch-extras.Dockerfile
@@ -0,0 +1,58 @@
+FROM archlinux/base:latest
+
+# There is some redundancy between this file and the archlinux Dockerfile in the helper images
+# repo and also with the clean-install.Dockerfile. Once the help image is available on Docker
+# Hub this file can be deleted.
+RUN echo sdlsjdkls
+RUN pacman -Syyu --noconfirm
+RUN pacman --noconfirm --needed -S autoconf \
+ autoconf-archive \
+ autogen \
+ automake \
+ gcc \
+ make \
+ git \
+ libuv \
+ lz4 \
+ netcat \
+ openssl \
+ pkgconfig \
+ python \
+ libvirt \
+ cmake \
+ valgrind \
+ gdb
+
+ARG EXTRA_CFLAGS
+COPY . /opt/netdata/source
+WORKDIR /opt/netdata/source
+
+RUN git config --global user.email "root@container"
+RUN git config --global user.name "Fake root"
+
+# RUN make distclean -> not safe if tree state changed on host since last config
+# Kill everything that is not in .gitignore preserving any fresh changes, i.e. untracked changes will be
+# deleted but local changes to tracked files will be preserved.
+RUN if git status --porcelain | grep '^[MADRC]'; then \
+ git stash && git clean -dxf && (git stash apply || true) \
+ else \
+ git clean -dxf ; \
+ fi
+
+# Not everybody is updating distclean properly - fix.
+RUN find . -name '*.Po' -exec rm \{\} \;
+RUN rm -rf autom4te.cache
+RUN rm -rf .git/
+RUN find . -type f >/opt/netdata/manifest
+
+RUN CFLAGS="-Og -g -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -DNETDATA_INTERNAL_CHECKS=1\
+ -D_FORTIFY_SOURCE=2 -DNETDATA_VERIFY_LOCKS=1 ${EXTRA_CFLAGS}" ./netdata-installer.sh --require-cloud --disable-lto
+
+RUN ln -sf /dev/stdout /var/log/netdata/access.log
+RUN ln -sf /dev/stdout /var/log/netdata/debug.log
+RUN ln -sf /dev/stderr /var/log/netdata/error.log
+
+RUN rm /var/lib/netdata/registry/netdata.public.unique.id
+
+CMD ["/usr/sbin/valgrind", "--leak-check=full", "/usr/sbin/netdata", "-D"]
+
diff --git a/build_external/clean-install-arch.Dockerfile b/build_external/clean-install-arch.Dockerfile
new file mode 100644
index 0000000..92bd2c6
--- /dev/null
+++ b/build_external/clean-install-arch.Dockerfile
@@ -0,0 +1,54 @@
+FROM archlinux/base:latest
+
+# There is some redundancy between this file and the archlinux Dockerfile in the helper images
+# repo and also with the clean-install.Dockerfile. Once the help image is available on Docker
+# Hub this file can be deleted.
+
+RUN pacman -Sy
+RUN pacman --noconfirm --needed -S autoconf \
+ autoconf-archive \
+ autogen \
+ automake \
+ gcc \
+ make \
+ git \
+ libuv \
+ lz4 \
+ netcat \
+ openssl \
+ pkgconfig \
+ python \
+ libvirt \
+ cmake
+
+ARG ACLK=no
+ARG EXTRA_CFLAGS
+COPY . /opt/netdata/source
+WORKDIR /opt/netdata/source
+
+RUN git config --global user.email "root@container"
+RUN git config --global user.name "Fake root"
+
+# RUN make distclean -> not safe if tree state changed on host since last config
+# Kill everything that is not in .gitignore preserving any fresh changes, i.e. untracked changes will be
+# deleted but local changes to tracked files will be preserved.
+RUN if git status --porcelain | grep '^[MADRC]'; then \
+ git stash && git clean -dxf && (git stash apply || true) \
+ else \
+ git clean -dxf ; \
+ fi
+
+# Not everybody is updating distclean properly - fix.
+RUN find . -name '*.Po' -exec rm \{\} \;
+RUN rm -rf autom4te.cache
+RUN rm -rf .git/
+RUN find . -type f >/opt/netdata/manifest
+
+RUN CFLAGS="-O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -DNETDATA_INTERNAL_CHECKS=1\
+ -D_FORTIFY_SOURCE=2 -DNETDATA_VERIFY_LOCKS=1 ${EXTRA_CFLAGS}" ./netdata-installer.sh --disable-lto
+
+RUN ln -sf /dev/stdout /var/log/netdata/access.log
+RUN ln -sf /dev/stdout /var/log/netdata/debug.log
+RUN ln -sf /dev/stderr /var/log/netdata/error.log
+
+CMD ["/usr/sbin/netdata", "-D"]
diff --git a/build_external/clean-install.Dockerfile b/build_external/clean-install.Dockerfile
new file mode 100644
index 0000000..18586e8
--- /dev/null
+++ b/build_external/clean-install.Dockerfile
@@ -0,0 +1,39 @@
+ARG DISTRO=arch
+ARG VERSION=current
+FROM netdata/package-builders:${DISTRO}${VERSION}
+
+ARG ACLK=no
+ARG EXTRA_CFLAGS
+
+COPY . /opt/netdata/source
+WORKDIR /opt/netdata/source
+
+RUN git config --global user.email "root@container"
+RUN git config --global user.name "Fake root"
+
+# RUN make distclean -> not safe if tree state changed on host since last config
+# Kill everything that is not in .gitignore preserving any fresh changes, i.e. untracked changes will be
+# deleted but local changes to tracked files will be preserved.
+RUN if git status --porcelain | grep '^[MADRC]'; then \
+ git stash && git clean -dxf && (git stash apply || true) \
+ else \
+ git clean -dxf ; \
+ fi
+
+# Not everybody is updating distclean properly - fix.
+RUN find . -name '*.Po' -exec rm \{\} \;
+RUN rm -rf autom4te.cache
+RUN rm -rf .git/
+RUN find . -type f >/opt/netdata/manifest
+
+RUN CFLAGS="-O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -DNETDATA_INTERNAL_CHECKS=1\
+ -D_FORTIFY_SOURCE=2 -DNETDATA_VERIFY_LOCKS=1 ${EXTRA_CFLAGS}" ./netdata-installer.sh --disable-lto
+
+RUN ln -sf /dev/stdout /var/log/netdata/access.log
+RUN ln -sf /dev/stdout /var/log/netdata/debug.log
+RUN ln -sf /dev/stderr /var/log/netdata/error.log
+
+RUN rm /var/lib/netdata/registry/netdata.public.unique.id
+
+CMD ["/usr/sbin/netdata","-D"]
+ENTRYPOINT []
diff --git a/build_external/make-install.Dockerfile b/build_external/make-install.Dockerfile
new file mode 100644
index 0000000..1341b58
--- /dev/null
+++ b/build_external/make-install.Dockerfile
@@ -0,0 +1,11 @@
+ARG DISTRO=arch
+ARG VERSION=current
+
+FROM ${DISTRO}_${VERSION}_dev:latest
+
+# Sanitize new source tree by removing config-time state
+COPY . /opt/netdata/latest
+WORKDIR /opt/netdata/latest
+RUN while read -r f; do cp -p "$f" "../source/$f"; done <../manifest
+WORKDIR /opt/netdata/source
+RUN make install
diff --git a/build_external/scenarios/aclk-testing/agent-compose.yml b/build_external/scenarios/aclk-testing/agent-compose.yml
new file mode 100644
index 0000000..5f0f19a
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/agent-compose.yml
@@ -0,0 +1,18 @@
+version: '3.3'
+services:
+ agent_parent:
+ build:
+ context: ../../..
+ dockerfile: build_external/make-install.Dockerfile
+ args:
+ - DISTRO=arch
+ - VERSION=current
+ image: arch_current_dev:latest
+ command: >
+ sh -c "echo -n 00000000-0000-0000-0000-000000000000 >/var/lib/netdata/cloud.d/claimed_id &&
+ echo '[agent_cloud_link]' >>/etc/netdata/netdata.conf &&
+ echo ' agent cloud link hostname = vernemq' >>/etc/netdata/netdata.conf &&
+ echo ' agent cloud link port = 9002' >>/etc/netdata/netdata.conf &&
+ /usr/sbin/netdata -D"
+ ports:
+ - 20000:19999
diff --git a/build_external/scenarios/aclk-testing/agent-valgrind-compose.yml b/build_external/scenarios/aclk-testing/agent-valgrind-compose.yml
new file mode 100644
index 0000000..3173e81
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/agent-valgrind-compose.yml
@@ -0,0 +1,18 @@
+version: '3.3'
+services:
+ agent_parent:
+ build:
+ context: ../../..
+ dockerfile: build_external/make-install.Dockerfile
+ args:
+ - DISTRO=arch
+ - VERSION=extras
+ image: arch_extras_dev:latest
+ command: >
+ sh -c "echo -n 00000000-0000-0000-0000-000000000000 >/var/lib/netdata/cloud.d/claimed_id &&
+ echo '[agent_cloud_link]' >>/etc/netdata/netdata.conf &&
+ echo ' agent cloud link hostname = vernemq' >>/etc/netdata/netdata.conf &&
+ echo ' agent cloud link port = 9002' >>/etc/netdata/netdata.conf &&
+ /usr/sbin/valgrind --leak-check=full /usr/sbin/netdata -D -W debug_flags=0x200000000"
+ ports:
+ - 20000:19999
diff --git a/build_external/scenarios/aclk-testing/agent_netdata.conf b/build_external/scenarios/aclk-testing/agent_netdata.conf
new file mode 100644
index 0000000..0d3627d
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/agent_netdata.conf
@@ -0,0 +1,7115 @@
+# netdata configuration
+#
+# You can download the latest version of this file, using:
+#
+# wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
+# or
+# curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
+#
+# You can uncomment and change any of the options below.
+# The value shown in the commented settings, is the default value.
+#
+
+# global netdata configuration
+
+[global]
+ # glibc malloc arena max for plugins = 1
+ # glibc malloc arena max for netdata = 1
+ # hostname = b073e16793c4
+ # history = 3996
+ # update every = 1
+ # memory mode = dbengine
+ # page cache size = 32
+ # dbengine disk space = 256
+ # host access prefix =
+ # memory deduplication (ksm) = yes
+ # timezone = Etc/UTC
+ # run as user = netdata
+ # OOM score = 1000
+ # process scheduling policy = idle
+ # pthread stack size = 8388608
+ # cleanup obsolete charts after seconds = 3600
+ # gap when lost iterations above = 1
+ # cleanup orphan hosts after seconds = 3600
+ # delete obsolete charts files = yes
+ # delete orphan hosts files = yes
+ # enable zero metrics = no
+
+[web]
+ # ssl key = /etc/netdata/ssl/key.pem
+ # ssl certificate = /etc/netdata/ssl/cert.pem
+ # ses max window = 15
+ # des max window = 15
+ # mode = static-threaded
+ # listen backlog = 4096
+ # default port = 19999
+ # bind to = *
+ # disconnect idle clients after seconds = 60
+ # timeout for first request = 60
+ # accept a streaming request every seconds = 0
+ # respect do not track policy = no
+ # x-frame-options response header =
+ # allow connections from = localhost *
+ # allow connections by dns = heuristic
+ # allow dashboard from = localhost *
+ # allow dashboard by dns = heuristic
+ # allow badges from = *
+ # allow badges by dns = heuristic
+ # allow streaming from = *
+ # allow streaming by dns = heuristic
+ # allow netdata.conf from = localhost fd* 10.* 192.168.* 172.16.* 172.17.* 172.18.* 172.19.* 172.20.* 172.21.* 172.22.* 172.23.* 172.24.* 172.25.* 172.26.* 172.27.* 172.28.* 172.29.* 172.30.* 172.31.*
+ # allow netdata.conf by dns = no
+ # allow management from = localhost
+ # allow management by dns = heuristic
+ # enable gzip compression = yes
+ # gzip compression strategy = default
+ # gzip compression level = 3
+ # web server threads = 6
+ # web server max sockets = 262144
+
+[plugins]
+ # checks = no
+ # proc = yes
+ # diskspace = yes
+ # cgroups = yes
+ # tc = yes
+ # idlejitter = yes
+ # enable running new plugins = yes
+ # check for new plugins every = 60
+ # slabinfo = no
+ # go.d = yes
+ # apps = yes
+ # charts.d = yes
+ # fping = yes
+ # python.d = yes
+ # perf = yes
+ # ioping = yes
+
+[health]
+ # silencers file = /var/lib/netdata/health.silencers.json
+ # enabled = yes
+ # default repeat warning = never
+ # default repeat critical = never
+ # in memory max health log entries = 1000
+ # script to execute on alarm = /usr/libexec/netdata/plugins.d/alarm-notify.sh
+ # rotate log every lines = 2000
+ # run at least every seconds = 10
+ # postpone alarms during hibernation for seconds = 60
+
+[registry]
+ # enabled = no
+ # registry db directory = /var/lib/netdata/registry
+ # netdata unique id file = /var/lib/netdata/registry/netdata.public.unique.id
+ # registry db file = /var/lib/netdata/registry/registry.db
+ # registry log file = /var/lib/netdata/registry/registry-log.db
+ # registry save db every new entries = 1000000
+ # registry expire idle persons days = 365
+ # registry domain =
+ # registry to announce = https://registry.my-netdata.io
+ # registry hostname = b073e16793c4
+ # verify browser cookies support = yes
+ # max URL length = 1024
+ # max URL name length = 50
+ # netdata management api key file = /var/lib/netdata/netdata.api.key
+ # allow from = *
+ # allow by dns = heuristic
+
+[cloud]
+ # cloud base url = https://netdata.cloud
+
+[statsd]
+ # enabled = yes
+ # update every (flushInterval) = 1
+ # udp messages to process at once = 10
+ # create private charts for metrics matching = *
+ # max private charts allowed = 200
+ # max private charts hard limit = 1000
+ # private charts memory mode = dbengine
+ # private charts history = 3996
+ # decimal detail = 1000
+ # disconnect idle tcp clients after seconds = 600
+ # private charts hidden = no
+ # histograms and timers percentile (percentThreshold) = 95.00000
+ # add dimension for number of events received = yes
+ # gaps on gauges (deleteGauges) = no
+ # gaps on counters (deleteCounters) = no
+ # gaps on meters (deleteMeters) = no
+ # gaps on sets (deleteSets) = no
+ # gaps on histograms (deleteHistograms) = no
+ # gaps on timers (deleteTimers) = no
+ # statsd server max TCP sockets = 262144
+ # listen backlog = 4096
+ # default port = 8125
+ # bind to = udp:localhost tcp:localhost
+
+
+# per plugin configuration
+
+[plugin:cgroups]
+ # cgroups plugin resource charts = yes
+ # update every = 1
+ # check for new cgroups every = 10
+ # use unified cgroups = no
+ # containers priority = 40000
+ # enable cpuacct stat (total CPU) = auto
+ # enable cpuacct usage (per core CPU) = auto
+ # enable memory (used mem including cache) = auto
+ # enable detailed memory = auto
+ # enable memory limits fail count = auto
+ # enable swap memory = auto
+ # enable blkio bandwidth = auto
+ # enable blkio operations = auto
+ # enable blkio throttle bandwidth = auto
+ # enable blkio throttle operations = auto
+ # enable blkio queued operations = auto
+ # enable blkio merged operations = auto
+ # enable cpu pressure = auto
+ # enable io some pressure = auto
+ # enable io full pressure = auto
+ # enable memory some pressure = auto
+ # enable memory full pressure = auto
+ # recheck zero blkio every iterations = 10
+ # recheck zero memory failcnt every iterations = 10
+ # recheck zero detailed memory every iterations = 10
+ # enable systemd services = yes
+ # enable systemd services detailed memory = no
+ # report used memory without cache = yes
+ # path to /sys/fs/cgroup/cpuacct = /sys/fs/cgroup/cpu,cpuacct
+ # path to /sys/fs/cgroup/cpuset = /sys/fs/cgroup/cpuset
+ # path to /sys/fs/cgroup/blkio = /sys/fs/cgroup/blkio
+ # path to /sys/fs/cgroup/memory = /sys/fs/cgroup/memory
+ # path to /sys/fs/cgroup/devices = /sys/fs/cgroup/devices
+ # max cgroups to allow = 1000
+ # max cgroups depth to monitor = 0
+ # enable by default cgroups matching = !*/init.scope !/system.slice/run-*.scope *.scope /machine.slice/*.service !*/vcpu* !*/emulator !*.mount !*.partition !*.service !*.socket !*.slice !*.swap !*.user !/ !/docker !/libvirt !/lxc !/lxc/*/* !/lxc.monitor !/lxc.pivot !/lxc.payload !/machine !/qemu !/system !/systemd !/user *
+ # search for cgroups in subpaths matching = !*/init.scope !*-qemu !*.libvirt-qemu !/init.scope !/system !/systemd !/user !/user.slice !/lxc/*/* !/lxc.monitor !/lxc.payload/*/* *
+ # script to get cgroup names = /usr/libexec/netdata/plugins.d/cgroup-name.sh
+ # script to get cgroup network interfaces = /usr/libexec/netdata/plugins.d/cgroup-network
+ # run script to rename cgroups matching = !/ !*.mount !*.socket !*.partition /machine.slice/*.service !*.service !*.slice !*.swap !*.user !init.scope !*.scope/vcpu* !*.scope/emulator *.scope *docker* *lxc* *qemu* *kubepods* *.libvirt-qemu *
+ # cgroups to match as systemd services = !/system.slice/*/*.service /system.slice/*.service
+
+[plugin:proc]
+ # netdata server resources = yes
+ # /proc/pagetypeinfo = no
+ # /proc/stat = yes
+ # /proc/uptime = yes
+ # /proc/loadavg = yes
+ # /proc/sys/kernel/random/entropy_avail = yes
+ # /proc/pressure = yes
+ # /proc/interrupts = yes
+ # /proc/softirqs = yes
+ # /proc/vmstat = yes
+ # /proc/meminfo = yes
+ # /sys/kernel/mm/ksm = yes
+ # /sys/block/zram = yes
+ # /sys/devices/system/edac/mc = yes
+ # /sys/devices/system/node = yes
+ # /proc/net/dev = yes
+ # /proc/net/sockstat = yes
+ # /proc/net/sockstat6 = yes
+ # /proc/net/netstat = yes
+ # /proc/net/snmp = yes
+ # /proc/net/snmp6 = yes
+ # /proc/net/sctp/snmp = yes
+ # /proc/net/softnet_stat = yes
+ # /proc/net/ip_vs/stats = yes
+ # /proc/net/stat/conntrack = yes
+ # /proc/net/stat/synproxy = yes
+ # /proc/diskstats = yes
+ # /proc/mdstat = yes
+ # /proc/net/rpc/nfsd = yes
+ # /proc/net/rpc/nfs = yes
+ # /proc/spl/kstat/zfs/arcstats = yes
+ # /sys/fs/btrfs = yes
+ # ipc = yes
+ # /sys/class/power_supply = yes
+
+[plugin:proc:diskspace]
+ # remove charts of unmounted disks = yes
+ # update every = 1
+ # check for new mount points every = 15
+ # exclude space metrics on paths = /proc/* /sys/* /var/run/user/* /run/user/* /snap/* /var/lib/docker/*
+ # exclude space metrics on filesystems = *gvfs *gluster* *s3fs *ipfs *davfs2 *httpfs *sshfs *gdfs *moosefs fusectl autofs
+ # space usage for all disks = auto
+ # inodes usage for all disks = auto
+
+[plugin:tc]
+ # script to run to get tc values = /usr/libexec/netdata/plugins.d/tc-qos-helper.sh
+
+[plugin:idlejitter]
+ # loop time in ms = 20
+
+[plugin:go.d]
+ # update every = 1
+ # command options =
+
+[plugin:apps]
+ # update every = 1
+ # command options =
+
+[plugin:charts.d]
+ # update every = 1
+ # command options =
+
+[plugin:fping]
+ # update every = 1
+ # command options =
+
+[plugin:python.d]
+ # update every = 1
+ # command options =
+
+[plugin:perf]
+ # update every = 1
+ # command options =
+
+[plugin:ioping]
+ # update every = 1
+ # command options =
+
+[plugin:proc:/proc/stat]
+ # cpu utilization = yes
+ # per cpu core utilization = yes
+ # cpu interrupts = yes
+ # context switches = yes
+ # processes started = yes
+ # processes running = yes
+ # keep per core files open = yes
+ # keep cpuidle files open = yes
+ # core_throttle_count = auto
+ # package_throttle_count = no
+ # cpu frequency = yes
+ # cpu idle states = yes
+ # core_throttle_count filename to monitor = /sys/devices/system/cpu/%s/thermal_throttle/core_throttle_count
+ # package_throttle_count filename to monitor = /sys/devices/system/cpu/%s/thermal_throttle/package_throttle_count
+ # scaling_cur_freq filename to monitor = /sys/devices/system/cpu/%s/cpufreq/scaling_cur_freq
+ # time_in_state filename to monitor = /sys/devices/system/cpu/%s/cpufreq/stats/time_in_state
+ # schedstat filename to monitor = /proc/schedstat
+ # cpuidle name filename to monitor = /sys/devices/system/cpu/cpu%zu/cpuidle/state%zu/name
+ # cpuidle time filename to monitor = /sys/devices/system/cpu/cpu%zu/cpuidle/state%zu/time
+ # filename to monitor = /proc/stat
+
+[plugin:proc:diskspace:/]
+ # space usage = auto
+ # inodes usage = auto
+
+[plugin:proc:diskspace:/dev]
+ # space usage = auto
+ # inodes usage = auto
+
+[plugin:proc:diskspace:/sys/fs/cgroup]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/systemd]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/cpu,cpuacct]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/devices]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/blkio]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/perf_event]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/rdma]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/net_cls,net_prio]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/pids]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/cpuset]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/memory]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/fs/cgroup/freezer]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/dev/shm]
+ # space usage = auto
+ # inodes usage = auto
+
+[plugin:proc:diskspace:/etc/resolv.conf]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/etc/hostname]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/etc/hosts]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/proc/asound]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/proc/acpi]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/proc/kcore]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/proc/keys]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/proc/timer_list]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/proc/sched_debug]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:diskspace:/sys/firmware]
+ # space usage = no
+ # inodes usage = no
+
+[plugin:proc:/proc/uptime]
+ # filename to monitor = /proc/uptime
+
+[plugin:proc:/proc/loadavg]
+ # filename to monitor = /proc/loadavg
+ # enable load average = yes
+ # enable total processes = yes
+
+[plugin:proc:/proc/sys/kernel/random/entropy_avail]
+ # filename to monitor = /proc/sys/kernel/random/entropy_avail
+
+[plugin:proc:/proc/pressure]
+ # base path of pressure metrics = /proc/pressure
+ # enable cpu some pressure = yes
+ # enable memory some pressure = yes
+ # enable memory full pressure = yes
+ # enable io some pressure = yes
+ # enable io full pressure = yes
+
+[plugin:proc:/proc/interrupts]
+ # interrupts per core = auto
+ # filename to monitor = /proc/interrupts
+
+[plugin:proc:/proc/softirqs]
+ # interrupts per core = auto
+ # filename to monitor = /proc/softirqs
+
+[plugin:proc:/proc/vmstat]
+ # swap i/o = auto
+ # disk i/o = yes
+ # memory page faults = yes
+ # system-wide numa metric summary = auto
+ # filename to monitor = /proc/vmstat
+
+[plugin:proc:/sys/devices/system/node]
+ # directory to monitor = /sys/devices/system/node
+ # enable per-node numa metrics = auto
+
+[plugin:proc:/proc/meminfo]
+ # system ram = yes
+ # system swap = auto
+ # hardware corrupted ECC = auto
+ # committed memory = yes
+ # writeback memory = yes
+ # kernel memory = yes
+ # slab memory = yes
+ # hugepages = auto
+ # transparent hugepages = auto
+ # filename to monitor = /proc/meminfo
+
+[plugin:proc:/sys/kernel/mm/ksm]
+ # /sys/kernel/mm/ksm/pages_shared = /sys/kernel/mm/ksm/pages_shared
+ # /sys/kernel/mm/ksm/pages_sharing = /sys/kernel/mm/ksm/pages_sharing
+ # /sys/kernel/mm/ksm/pages_unshared = /sys/kernel/mm/ksm/pages_unshared
+ # /sys/kernel/mm/ksm/pages_volatile = /sys/kernel/mm/ksm/pages_volatile
+
+[plugin:proc:/sys/devices/system/edac/mc]
+ # directory to monitor = /sys/devices/system/edac/mc
+
+[plugin:proc:/proc/net/dev]
+ # filename to monitor = /proc/net/dev
+ # path to get virtual interfaces = /sys/devices/virtual/net/%s
+ # path to get net device speed = /sys/class/net/%s/speed
+ # path to get net device duplex = /sys/class/net/%s/duplex
+ # path to get net device operstate = /sys/class/net/%s/operstate
+ # enable new interfaces detected at runtime = auto
+ # bandwidth for all interfaces = auto
+ # packets for all interfaces = auto
+ # errors for all interfaces = auto
+ # drops for all interfaces = auto
+ # fifo for all interfaces = auto
+ # compressed packets for all interfaces = auto
+ # frames, collisions, carrier counters for all interfaces = auto
+ # disable by default interfaces matching = lo fireqos* *-ifb
+ # refresh interface speed every seconds = 10
+ # refresh interface duplex every seconds = 10
+ # refresh interface operstate every seconds = 10
+
+[plugin:proc:/proc/net/dev:lo]
+ # enabled = no
+ # virtual = yes
+
+[plugin:proc:/proc/net/dev:eth0]
+ # enabled = yes
+ # virtual = yes
+ # bandwidth = auto
+ # packets = auto
+ # errors = auto
+ # drops = auto
+ # fifo = auto
+ # compressed = auto
+ # events = auto
+
+[plugin:proc:/proc/net/sockstat]
+ # ipv4 sockets = auto
+ # ipv4 TCP sockets = auto
+ # ipv4 TCP memory = auto
+ # ipv4 UDP sockets = auto
+ # ipv4 UDP memory = auto
+ # ipv4 UDPLITE sockets = auto
+ # ipv4 RAW sockets = auto
+ # ipv4 FRAG sockets = auto
+ # ipv4 FRAG memory = auto
+ # update constants every = 60
+ # filename to monitor = /proc/net/sockstat
+
+[plugin:proc:/proc/net/sockstat6]
+ # ipv6 TCP sockets = auto
+ # ipv6 UDP sockets = auto
+ # ipv6 UDPLITE sockets = auto
+ # ipv6 RAW sockets = auto
+ # ipv6 FRAG sockets = auto
+ # filename to monitor = /proc/net/sockstat6
+
+[plugin:proc:/proc/net/netstat]
+ # bandwidth = auto
+ # input errors = auto
+ # multicast bandwidth = auto
+ # broadcast bandwidth = auto
+ # multicast packets = auto
+ # broadcast packets = auto
+ # ECN packets = auto
+ # TCP reorders = auto
+ # TCP SYN cookies = auto
+ # TCP out-of-order queue = auto
+ # TCP connection aborts = auto
+ # TCP memory pressures = auto
+ # TCP SYN queue = auto
+ # TCP accept queue = auto
+ # filename to monitor = /proc/net/netstat
+
+[plugin:proc:/proc/net/snmp]
+ # ipv4 packets = auto
+ # ipv4 fragments sent = auto
+ # ipv4 fragments assembly = auto
+ # ipv4 errors = auto
+ # ipv4 TCP connections = auto
+ # ipv4 TCP packets = auto
+ # ipv4 TCP errors = auto
+ # ipv4 TCP opens = auto
+ # ipv4 TCP handshake issues = auto
+ # ipv4 UDP packets = auto
+ # ipv4 UDP errors = auto
+ # ipv4 ICMP packets = auto
+ # ipv4 ICMP messages = auto
+ # ipv4 UDPLite packets = auto
+ # filename to monitor = /proc/net/snmp
+
+[plugin:proc:/proc/net/snmp6]
+ # ipv6 packets = auto
+ # ipv6 fragments sent = auto
+ # ipv6 fragments assembly = auto
+ # ipv6 errors = auto
+ # ipv6 UDP packets = auto
+ # ipv6 UDP errors = auto
+ # ipv6 UDPlite packets = auto
+ # ipv6 UDPlite errors = auto
+ # bandwidth = auto
+ # multicast bandwidth = auto
+ # broadcast bandwidth = auto
+ # multicast packets = auto
+ # icmp = auto
+ # icmp redirects = auto
+ # icmp errors = auto
+ # icmp echos = auto
+ # icmp group membership = auto
+ # icmp router = auto
+ # icmp neighbor = auto
+ # icmp mldv2 = auto
+ # icmp types = auto
+ # ect = auto
+ # filename to monitor = /proc/net/snmp6
+
+[plugin:proc:/proc/net/sctp/snmp]
+ # established associations = auto
+ # association transitions = auto
+ # fragmentation = auto
+ # packets = auto
+ # packet errors = auto
+ # chunk types = auto
+ # filename to monitor = /proc/net/sctp/snmp
+
+[plugin:proc:/proc/net/softnet_stat]
+ # softnet_stat per core = yes
+ # filename to monitor = /proc/net/softnet_stat
+
+[plugin:proc:/proc/net/ip_vs_stats]
+ # IPVS bandwidth = yes
+ # IPVS connections = yes
+ # IPVS packets = yes
+ # filename to monitor = /proc/net/ip_vs_stats
+
+[plugin:proc:/proc/net/stat/nf_conntrack]
+ # filename to monitor = /proc/net/stat/nf_conntrack
+ # netfilter new connections = yes
+ # netfilter connection changes = yes
+ # netfilter connection expectations = yes
+ # netfilter connection searches = yes
+ # netfilter errors = yes
+ # netfilter connections = yes
+
+[plugin:proc:/proc/sys/net/netfilter/nf_conntrack_max]
+ # filename to monitor = /proc/sys/net/netfilter/nf_conntrack_max
+ # read every seconds = 10
+
+[plugin:proc:/proc/net/stat/synproxy]
+ # SYNPROXY entries = auto
+ # SYNPROXY cookies = auto
+ # SYNPROXY SYN received = auto
+ # SYNPROXY connections reopened = auto
+ # filename to monitor = /proc/net/stat/synproxy
+
+[plugin:proc:/proc/diskstats]
+ # enable new disks detected at runtime = yes
+ # performance metrics for physical disks = auto
+ # performance metrics for virtual disks = auto
+ # performance metrics for partitions = no
+ # bandwidth for all disks = auto
+ # operations for all disks = auto
+ # merged operations for all disks = auto
+ # i/o time for all disks = auto
+ # queued operations for all disks = auto
+ # utilization percentage for all disks = auto
+ # backlog for all disks = auto
+ # bcache for all disks = auto
+ # bcache priority stats update every = 0
+ # remove charts of removed disks = yes
+ # path to get block device = /sys/block/%s
+ # path to get block device bcache = /sys/block/%s/bcache
+ # path to get virtual block device = /sys/devices/virtual/block/%s
+ # path to get block device infos = /sys/dev/block/%lu:%lu/%s
+ # path to device mapper = /dev/mapper
+ # path to /dev/disk/by-label = /dev/disk/by-label
+ # path to /dev/disk/by-id = /dev/disk/by-id
+ # path to /dev/vx/dsk = /dev/vx/dsk
+ # name disks by id = no
+ # preferred disk ids = *
+ # exclude disks = loop* ram*
+ # filename to monitor = /proc/diskstats
+ # performance metrics for disks with major 8 = yes
+
+[plugin:proc:/proc/diskstats:sda]
+ # enable = yes
+ # enable performance metrics = yes
+ # bandwidth = auto
+ # operations = auto
+ # merged operations = auto
+ # i/o time = auto
+ # queued operations = auto
+ # utilization percentage = auto
+ # backlog = auto
+
+[plugin:proc:/proc/diskstats:sda1]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sda2]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sda3]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sda4]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sda5]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sdb]
+ # enable = yes
+ # enable performance metrics = yes
+ # bandwidth = auto
+ # operations = auto
+ # merged operations = auto
+ # i/o time = auto
+ # queued operations = auto
+ # utilization percentage = auto
+ # backlog = auto
+
+[plugin:proc:/proc/diskstats:sdb1]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sdb2]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sdb3]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sdb4]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/diskstats:sdb5]
+ # enable = yes
+ # enable performance metrics = no
+ # bandwidth = no
+ # operations = no
+ # merged operations = no
+ # i/o time = no
+ # queued operations = no
+ # utilization percentage = no
+ # backlog = no
+
+[plugin:proc:/proc/mdstat]
+ # faulty devices = yes
+ # nonredundant arrays availability = yes
+ # mismatch count = auto
+ # disk stats = yes
+ # operation status = yes
+ # make charts obsolete = yes
+ # filename to monitor = /proc/mdstat
+ # mismatch_cnt filename to monitor = /sys/block/%s/md/mismatch_cnt
+
+[plugin:proc:/proc/net/rpc/nfsd]
+ # filename to monitor = /proc/net/rpc/nfsd
+
+[plugin:proc:/proc/net/rpc/nfs]
+ # filename to monitor = /proc/net/rpc/nfs
+
+[plugin:proc:/proc/spl/kstat/zfs/arcstats]
+ # filename to monitor = /proc/spl/kstat/zfs/arcstats
+
+[plugin:proc:/sys/fs/btrfs]
+ # path to monitor = /sys/fs/btrfs
+ # check for btrfs changes every = 60
+ # physical disks allocation = auto
+ # data allocation = auto
+ # metadata allocation = auto
+ # system allocation = auto
+
+[plugin:proc:ipc]
+ # message queues = yes
+ # semaphore totals = yes
+ # shared memory totals = yes
+ # msg filename to monitor = /proc/sysvipc/msg
+ # shm filename to monitor = /proc/sysvipc/shm
+ # max dimensions in memory allowed = 50
+
+[plugin:proc:/sys/class/power_supply]
+ # battery capacity = yes
+ # battery charge = no
+ # battery energy = no
+ # power supply voltage = no
+ # keep files open = auto
+ # directory to monitor = /sys/class/power_supply
+
+
+# per chart configuration
+
+[system.idlejitter]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.idlejitter
+ # chart type = area
+ # type = system
+ # family = idlejitter
+ # units = microseconds lost/s
+ # context = system.idlejitter
+ # priority = 800
+ # name = system.idlejitter
+ # title = CPU Idle Jitter
+ # dim min name = min
+ # dim min algorithm = absolute
+ # dim min multiplier = 1
+ # dim min divisor = 1
+ # dim max name = max
+ # dim max algorithm = absolute
+ # dim max multiplier = 1
+ # dim max divisor = 1
+ # dim average name = average
+ # dim average algorithm = absolute
+ # dim average multiplier = 1
+ # dim average divisor = 1
+
+[netdata.statsd_metrics]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.statsd_metrics
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = metrics
+ # context = netdata.statsd_metrics
+ # priority = 132010
+ # name = netdata.statsd_metrics
+ # title = Metrics in the netdata statsd database
+ # dim gauges name = gauges
+ # dim gauges algorithm = absolute
+ # dim gauges multiplier = 1
+ # dim gauges divisor = 1
+ # dim counters name = counters
+ # dim counters algorithm = absolute
+ # dim counters multiplier = 1
+ # dim counters divisor = 1
+ # dim timers name = timers
+ # dim timers algorithm = absolute
+ # dim timers multiplier = 1
+ # dim timers divisor = 1
+ # dim meters name = meters
+ # dim meters algorithm = absolute
+ # dim meters multiplier = 1
+ # dim meters divisor = 1
+ # dim histograms name = histograms
+ # dim histograms algorithm = absolute
+ # dim histograms multiplier = 1
+ # dim histograms divisor = 1
+ # dim sets name = sets
+ # dim sets algorithm = absolute
+ # dim sets multiplier = 1
+ # dim sets divisor = 1
+
+[netdata.statsd_useful_metrics]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.statsd_useful_metrics
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = metrics
+ # context = netdata.statsd_useful_metrics
+ # priority = 132010
+ # name = netdata.statsd_useful_metrics
+ # title = Useful metrics in the netdata statsd database
+ # dim gauges name = gauges
+ # dim gauges algorithm = absolute
+ # dim gauges multiplier = 1
+ # dim gauges divisor = 1
+ # dim counters name = counters
+ # dim counters algorithm = absolute
+ # dim counters multiplier = 1
+ # dim counters divisor = 1
+ # dim timers name = timers
+ # dim timers algorithm = absolute
+ # dim timers multiplier = 1
+ # dim timers divisor = 1
+ # dim meters name = meters
+ # dim meters algorithm = absolute
+ # dim meters multiplier = 1
+ # dim meters divisor = 1
+ # dim histograms name = histograms
+ # dim histograms algorithm = absolute
+ # dim histograms multiplier = 1
+ # dim histograms divisor = 1
+ # dim sets name = sets
+ # dim sets algorithm = absolute
+ # dim sets multiplier = 1
+ # dim sets divisor = 1
+
+[netdata.statsd_events]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.statsd_events
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = events/s
+ # context = netdata.statsd_events
+ # priority = 132011
+ # name = netdata.statsd_events
+ # title = Events processed by the netdata statsd server
+ # dim gauges name = gauges
+ # dim gauges algorithm = incremental
+ # dim gauges multiplier = 1
+ # dim gauges divisor = 1
+ # dim counters name = counters
+ # dim counters algorithm = incremental
+ # dim counters multiplier = 1
+ # dim counters divisor = 1
+ # dim timers name = timers
+ # dim timers algorithm = incremental
+ # dim timers multiplier = 1
+ # dim timers divisor = 1
+ # dim meters name = meters
+ # dim meters algorithm = incremental
+ # dim meters multiplier = 1
+ # dim meters divisor = 1
+ # dim histograms name = histograms
+ # dim histograms algorithm = incremental
+ # dim histograms multiplier = 1
+ # dim histograms divisor = 1
+ # dim sets name = sets
+ # dim sets algorithm = incremental
+ # dim sets multiplier = 1
+ # dim sets divisor = 1
+ # dim unknown name = unknown
+ # dim unknown algorithm = incremental
+ # dim unknown multiplier = 1
+ # dim unknown divisor = 1
+ # dim errors name = errors
+ # dim errors algorithm = incremental
+ # dim errors multiplier = 1
+ # dim errors divisor = 1
+
+[netdata.statsd_reads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.statsd_reads
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = reads/s
+ # context = netdata.statsd_reads
+ # priority = 132012
+ # name = netdata.statsd_reads
+ # title = Read operations made by the netdata statsd server
+ # dim tcp name = tcp
+ # dim tcp algorithm = incremental
+ # dim tcp multiplier = 1
+ # dim tcp divisor = 1
+ # dim udp name = udp
+ # dim udp algorithm = incremental
+ # dim udp multiplier = 1
+ # dim udp divisor = 1
+
+[netdata.statsd_bytes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.statsd_bytes
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = kilobits/s
+ # context = netdata.statsd_bytes
+ # priority = 132013
+ # name = netdata.statsd_bytes
+ # title = Bytes read by the netdata statsd server
+ # dim tcp name = tcp
+ # dim tcp algorithm = incremental
+ # dim tcp multiplier = 8
+ # dim tcp divisor = 1000
+ # dim udp name = udp
+ # dim udp algorithm = incremental
+ # dim udp multiplier = 8
+ # dim udp divisor = 1000
+
+[netdata.statsd_packets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.statsd_packets
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = packets/s
+ # context = netdata.statsd_packets
+ # priority = 132014
+ # name = netdata.statsd_packets
+ # title = Network packets processed by the netdata statsd server
+ # dim tcp name = tcp
+ # dim tcp algorithm = incremental
+ # dim tcp multiplier = 1
+ # dim tcp divisor = 1
+ # dim udp name = udp
+ # dim udp algorithm = incremental
+ # dim udp multiplier = 1
+ # dim udp divisor = 1
+
+[netdata.tcp_connects]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.tcp_connects
+ # chart type = line
+ # type = netdata
+ # family = statsd
+ # units = events
+ # context = netdata.tcp_connects
+ # priority = 132015
+ # name = netdata.tcp_connects
+ # title = statsd server TCP connects and disconnects
+ # dim connects name = connects
+ # dim connects algorithm = incremental
+ # dim connects multiplier = 1
+ # dim connects divisor = 1
+ # dim disconnects name = disconnects
+ # dim disconnects algorithm = incremental
+ # dim disconnects multiplier = -1
+ # dim disconnects divisor = 1
+
+[netdata.tcp_connected]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.tcp_connected
+ # chart type = line
+ # type = netdata
+ # family = statsd
+ # units = sockets
+ # context = netdata.tcp_connected
+ # priority = 132016
+ # name = netdata.tcp_connected
+ # title = statsd server TCP connected sockets
+ # dim connected name = connected
+ # dim connected algorithm = absolute
+ # dim connected multiplier = 1
+ # dim connected divisor = 1
+
+[netdata.private_charts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.private_charts
+ # chart type = area
+ # type = netdata
+ # family = statsd
+ # units = charts
+ # context = netdata.private_charts
+ # priority = 132020
+ # name = netdata.private_charts
+ # title = Private metric charts created by the netdata statsd server
+ # dim charts name = charts
+ # dim charts algorithm = absolute
+ # dim charts multiplier = 1
+ # dim charts divisor = 1
+
+[netdata.plugin_statsd_charting_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.plugin_statsd_charting_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = milliseconds/s
+ # context = netdata.statsd_cpu
+ # priority = 132001
+ # name = netdata.plugin_statsd_charting_cpu
+ # title = Netdata statsd charting thread CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.plugin_statsd_collector1_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.plugin_statsd_collector1_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = statsd
+ # units = milliseconds/s
+ # context = netdata.statsd_cpu
+ # priority = 132002
+ # name = netdata.plugin_statsd_collector1_cpu
+ # title = Netdata statsd collector thread No 1 CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[system.cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.cpu
+ # chart type = stacked
+ # type = system
+ # family = cpu
+ # units = percentage
+ # context = system.cpu
+ # priority = 100
+ # name = system.cpu
+ # title = Total CPU utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[cpu.cpu0]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu0
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1001
+ # name = cpu.cpu0
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[cpu.cpu1]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu1
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1002
+ # name = cpu.cpu1
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[disk_space._]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_space._
+ # chart type = stacked
+ # type = disk_space
+ # family = /
+ # units = GiB
+ # context = disk.space
+ # priority = 2023
+ # name = disk_space._
+ # title = Disk Space Usage for / [overlay]
+ # dim avail name = avail
+ # dim avail algorithm = absolute
+ # dim avail multiplier = 4096
+ # dim avail divisor = 1073741824
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 4096
+ # dim used divisor = 1073741824
+ # dim reserved_for_root name = reserved for root
+ # dim reserved_for_root algorithm = absolute
+ # dim reserved_for_root multiplier = 4096
+ # dim reserved_for_root divisor = 1073741824
+
+[disk_inodes._]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_inodes._
+ # chart type = stacked
+ # type = disk_inodes
+ # family = /
+ # units = inodes
+ # context = disk.inodes
+ # priority = 2024
+ # name = disk_inodes._
+ # title = Disk Files (inodes) Usage for / [overlay]
+ # dim avail name = avail
+ # dim avail algorithm = absolute
+ # dim avail multiplier = 1
+ # dim avail divisor = 1
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 1
+ # dim used divisor = 1
+ # dim reserved_for_root name = reserved for root
+ # dim reserved_for_root algorithm = absolute
+ # dim reserved_for_root multiplier = 1
+ # dim reserved_for_root divisor = 1
+
+[disk_space._dev]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_space._dev
+ # chart type = stacked
+ # type = disk_space
+ # family = /dev
+ # units = GiB
+ # context = disk.space
+ # priority = 2023
+ # name = disk_space._dev
+ # title = Disk Space Usage for /dev [tmpfs]
+ # dim avail name = avail
+ # dim avail algorithm = absolute
+ # dim avail multiplier = 4096
+ # dim avail divisor = 1073741824
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 4096
+ # dim used divisor = 1073741824
+ # dim reserved_for_root name = reserved for root
+ # dim reserved_for_root algorithm = absolute
+ # dim reserved_for_root multiplier = 4096
+ # dim reserved_for_root divisor = 1073741824
+
+[disk_inodes._dev]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_inodes._dev
+ # chart type = stacked
+ # type = disk_inodes
+ # family = /dev
+ # units = inodes
+ # context = disk.inodes
+ # priority = 2024
+ # name = disk_inodes._dev
+ # title = Disk Files (inodes) Usage for /dev [tmpfs]
+ # dim avail name = avail
+ # dim avail algorithm = absolute
+ # dim avail multiplier = 1
+ # dim avail divisor = 1
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 1
+ # dim used divisor = 1
+ # dim reserved_for_root name = reserved for root
+ # dim reserved_for_root algorithm = absolute
+ # dim reserved_for_root multiplier = 1
+ # dim reserved_for_root divisor = 1
+
+[disk_space._dev_shm]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_space._dev_shm
+ # chart type = stacked
+ # type = disk_space
+ # family = /dev/shm
+ # units = GiB
+ # context = disk.space
+ # priority = 2023
+ # name = disk_space._dev_shm
+ # title = Disk Space Usage for /dev/shm [shm]
+ # dim avail name = avail
+ # dim avail algorithm = absolute
+ # dim avail multiplier = 4096
+ # dim avail divisor = 1073741824
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 4096
+ # dim used divisor = 1073741824
+ # dim reserved_for_root name = reserved for root
+ # dim reserved_for_root algorithm = absolute
+ # dim reserved_for_root multiplier = 4096
+ # dim reserved_for_root divisor = 1073741824
+
+[disk_inodes._dev_shm]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_inodes._dev_shm
+ # chart type = stacked
+ # type = disk_inodes
+ # family = /dev/shm
+ # units = inodes
+ # context = disk.inodes
+ # priority = 2024
+ # name = disk_inodes._dev_shm
+ # title = Disk Files (inodes) Usage for /dev/shm [shm]
+ # dim avail name = avail
+ # dim avail algorithm = absolute
+ # dim avail multiplier = 1
+ # dim avail divisor = 1
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 1
+ # dim used divisor = 1
+ # dim reserved_for_root name = reserved for root
+ # dim reserved_for_root algorithm = absolute
+ # dim reserved_for_root multiplier = 1
+ # dim reserved_for_root divisor = 1
+
+[cpu.cpu2]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu2
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1003
+ # name = cpu.cpu2
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[cpu.cpu3]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu3
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1004
+ # name = cpu.cpu3
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[cpu.cpu4]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu4
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1005
+ # name = cpu.cpu4
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[cpu.cpu5]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu5
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1006
+ # name = cpu.cpu5
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[cpu.cpu6]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu6
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1007
+ # name = cpu.cpu6
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[cpu.cpu7]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu7
+ # chart type = stacked
+ # type = cpu
+ # family = utilization
+ # units = percentage
+ # context = cpu.cpu
+ # priority = 1008
+ # name = cpu.cpu7
+ # title = Core utilization
+ # dim guest_nice name = guest_nice
+ # dim guest_nice algorithm = percentage-of-incremental-row
+ # dim guest_nice multiplier = 1
+ # dim guest_nice divisor = 1
+ # dim guest name = guest
+ # dim guest algorithm = percentage-of-incremental-row
+ # dim guest multiplier = 1
+ # dim guest divisor = 1
+ # dim steal name = steal
+ # dim steal algorithm = percentage-of-incremental-row
+ # dim steal multiplier = 1
+ # dim steal divisor = 1
+ # dim softirq name = softirq
+ # dim softirq algorithm = percentage-of-incremental-row
+ # dim softirq multiplier = 1
+ # dim softirq divisor = 1
+ # dim irq name = irq
+ # dim irq algorithm = percentage-of-incremental-row
+ # dim irq multiplier = 1
+ # dim irq divisor = 1
+ # dim user name = user
+ # dim user algorithm = percentage-of-incremental-row
+ # dim user multiplier = 1
+ # dim user divisor = 1
+ # dim system name = system
+ # dim system algorithm = percentage-of-incremental-row
+ # dim system multiplier = 1
+ # dim system divisor = 1
+ # dim nice name = nice
+ # dim nice algorithm = percentage-of-incremental-row
+ # dim nice multiplier = 1
+ # dim nice divisor = 1
+ # dim iowait name = iowait
+ # dim iowait algorithm = percentage-of-incremental-row
+ # dim iowait multiplier = 1
+ # dim iowait divisor = 1
+ # dim idle name = idle
+ # dim idle algorithm = percentage-of-incremental-row
+ # dim idle multiplier = 1
+ # dim idle divisor = 1
+
+[system.intr]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.intr
+ # chart type = line
+ # type = system
+ # family = interrupts
+ # units = interrupts/s
+ # context = system.intr
+ # priority = 900
+ # name = system.intr
+ # title = CPU Interrupts
+ # dim interrupts name = interrupts
+ # dim interrupts algorithm = incremental
+ # dim interrupts multiplier = 1
+ # dim interrupts divisor = 1
+
+[system.ctxt]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.ctxt
+ # chart type = line
+ # type = system
+ # family = processes
+ # units = context switches/s
+ # context = system.ctxt
+ # priority = 800
+ # name = system.ctxt
+ # title = CPU Context Switches
+ # dim switches name = switches
+ # dim switches algorithm = incremental
+ # dim switches multiplier = 1
+ # dim switches divisor = 1
+
+[system.forks]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.forks
+ # chart type = line
+ # type = system
+ # family = processes
+ # units = processes/s
+ # context = system.forks
+ # priority = 700
+ # name = system.forks
+ # title = Started Processes
+ # dim started name = started
+ # dim started algorithm = incremental
+ # dim started multiplier = 1
+ # dim started divisor = 1
+
+[system.processes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.processes
+ # chart type = line
+ # type = system
+ # family = processes
+ # units = processes
+ # context = system.processes
+ # priority = 600
+ # name = system.processes
+ # title = System Processes
+ # dim running name = running
+ # dim running algorithm = absolute
+ # dim running multiplier = 1
+ # dim running divisor = 1
+ # dim blocked name = blocked
+ # dim blocked algorithm = absolute
+ # dim blocked multiplier = -1
+ # dim blocked divisor = 1
+
+[cpu.core_throttling]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.core_throttling
+ # chart type = line
+ # type = cpu
+ # family = throttling
+ # units = events/s
+ # context = cpu.core_throttling
+ # priority = 5001
+ # name = cpu.core_throttling
+ # title = Core Thermal Throttling Events
+ # dim cpu0 name = cpu0
+ # dim cpu0 algorithm = incremental
+ # dim cpu0 multiplier = 1
+ # dim cpu0 divisor = 1
+ # dim cpu1 name = cpu1
+ # dim cpu1 algorithm = incremental
+ # dim cpu1 multiplier = 1
+ # dim cpu1 divisor = 1
+ # dim cpu2 name = cpu2
+ # dim cpu2 algorithm = incremental
+ # dim cpu2 multiplier = 1
+ # dim cpu2 divisor = 1
+ # dim cpu3 name = cpu3
+ # dim cpu3 algorithm = incremental
+ # dim cpu3 multiplier = 1
+ # dim cpu3 divisor = 1
+ # dim cpu4 name = cpu4
+ # dim cpu4 algorithm = incremental
+ # dim cpu4 multiplier = 1
+ # dim cpu4 divisor = 1
+ # dim cpu5 name = cpu5
+ # dim cpu5 algorithm = incremental
+ # dim cpu5 multiplier = 1
+ # dim cpu5 divisor = 1
+ # dim cpu6 name = cpu6
+ # dim cpu6 algorithm = incremental
+ # dim cpu6 multiplier = 1
+ # dim cpu6 divisor = 1
+ # dim cpu7 name = cpu7
+ # dim cpu7 algorithm = incremental
+ # dim cpu7 multiplier = 1
+ # dim cpu7 divisor = 1
+
+[cpu.cpufreq]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpufreq
+ # chart type = line
+ # type = cpu
+ # family = cpufreq
+ # units = MHz
+ # context = cpufreq.cpufreq
+ # priority = 5003
+ # name = cpu.cpufreq
+ # title = Current CPU Frequency
+ # dim cpu0 name = cpu0
+ # dim cpu0 algorithm = absolute
+ # dim cpu0 multiplier = 1
+ # dim cpu0 divisor = 1000
+ # dim cpu1 name = cpu1
+ # dim cpu1 algorithm = absolute
+ # dim cpu1 multiplier = 1
+ # dim cpu1 divisor = 1000
+ # dim cpu2 name = cpu2
+ # dim cpu2 algorithm = absolute
+ # dim cpu2 multiplier = 1
+ # dim cpu2 divisor = 1000
+ # dim cpu3 name = cpu3
+ # dim cpu3 algorithm = absolute
+ # dim cpu3 multiplier = 1
+ # dim cpu3 divisor = 1000
+ # dim cpu4 name = cpu4
+ # dim cpu4 algorithm = absolute
+ # dim cpu4 multiplier = 1
+ # dim cpu4 divisor = 1000
+ # dim cpu5 name = cpu5
+ # dim cpu5 algorithm = absolute
+ # dim cpu5 multiplier = 1
+ # dim cpu5 divisor = 1000
+ # dim cpu6 name = cpu6
+ # dim cpu6 algorithm = absolute
+ # dim cpu6 multiplier = 1
+ # dim cpu6 divisor = 1000
+ # dim cpu7 name = cpu7
+ # dim cpu7 algorithm = absolute
+ # dim cpu7 multiplier = 1
+ # dim cpu7 divisor = 1000
+
+[netdata.plugin_cgroups_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.plugin_cgroups_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = cgroups
+ # units = milliseconds/s
+ # context = netdata.plugin_cgroups_cpu
+ # priority = 132000
+ # name = netdata.plugin_cgroups_cpu
+ # title = Netdata CGroups Plugin CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.plugin_diskspace]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.plugin_diskspace
+ # chart type = stacked
+ # type = netdata
+ # family = diskspace
+ # units = milliseconds/s
+ # context = netdata.plugin_diskspace
+ # priority = 132020
+ # name = netdata.plugin_diskspace
+ # title = Netdata Disk Space Plugin CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.plugin_diskspace_dt]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.plugin_diskspace_dt
+ # chart type = area
+ # type = netdata
+ # family = diskspace
+ # units = milliseconds/run
+ # context = netdata.plugin_diskspace_dt
+ # priority = 132021
+ # name = netdata.plugin_diskspace_dt
+ # title = Netdata Disk Space Plugin Duration
+ # dim duration name = duration
+ # dim duration algorithm = absolute
+ # dim duration multiplier = 1
+ # dim duration divisor = 1000
+
+[cpu.cpu0_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu0_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6000
+ # name = cpu.cpu0_cpuidle
+ # title = C-state residency time
+ # dim cpu0_active_time name = C0 (active)
+ # dim cpu0_active_time algorithm = percentage-of-incremental-row
+ # dim cpu0_active_time multiplier = 1
+ # dim cpu0_active_time divisor = 1
+ # dim cpu0_cpuidle_state0_time name = POLL
+ # dim cpu0_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu0_cpuidle_state0_time multiplier = 1
+ # dim cpu0_cpuidle_state0_time divisor = 1
+ # dim cpu0_cpuidle_state1_time name = C1
+ # dim cpu0_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu0_cpuidle_state1_time multiplier = 1
+ # dim cpu0_cpuidle_state1_time divisor = 1
+ # dim cpu0_cpuidle_state2_time name = C1E
+ # dim cpu0_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu0_cpuidle_state2_time multiplier = 1
+ # dim cpu0_cpuidle_state2_time divisor = 1
+ # dim cpu0_cpuidle_state3_time name = C3
+ # dim cpu0_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu0_cpuidle_state3_time multiplier = 1
+ # dim cpu0_cpuidle_state3_time divisor = 1
+ # dim cpu0_cpuidle_state4_time name = C6
+ # dim cpu0_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu0_cpuidle_state4_time multiplier = 1
+ # dim cpu0_cpuidle_state4_time divisor = 1
+ # dim cpu0_cpuidle_state5_time name = C7s
+ # dim cpu0_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu0_cpuidle_state5_time multiplier = 1
+ # dim cpu0_cpuidle_state5_time divisor = 1
+
+[cpu.cpu1_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu1_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6001
+ # name = cpu.cpu1_cpuidle
+ # title = C-state residency time
+ # dim cpu1_active_time name = C0 (active)
+ # dim cpu1_active_time algorithm = percentage-of-incremental-row
+ # dim cpu1_active_time multiplier = 1
+ # dim cpu1_active_time divisor = 1
+ # dim cpu1_cpuidle_state0_time name = POLL
+ # dim cpu1_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu1_cpuidle_state0_time multiplier = 1
+ # dim cpu1_cpuidle_state0_time divisor = 1
+ # dim cpu1_cpuidle_state1_time name = C1
+ # dim cpu1_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu1_cpuidle_state1_time multiplier = 1
+ # dim cpu1_cpuidle_state1_time divisor = 1
+ # dim cpu1_cpuidle_state2_time name = C1E
+ # dim cpu1_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu1_cpuidle_state2_time multiplier = 1
+ # dim cpu1_cpuidle_state2_time divisor = 1
+ # dim cpu1_cpuidle_state3_time name = C3
+ # dim cpu1_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu1_cpuidle_state3_time multiplier = 1
+ # dim cpu1_cpuidle_state3_time divisor = 1
+ # dim cpu1_cpuidle_state4_time name = C6
+ # dim cpu1_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu1_cpuidle_state4_time multiplier = 1
+ # dim cpu1_cpuidle_state4_time divisor = 1
+ # dim cpu1_cpuidle_state5_time name = C7s
+ # dim cpu1_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu1_cpuidle_state5_time multiplier = 1
+ # dim cpu1_cpuidle_state5_time divisor = 1
+
+[cpu.cpu2_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu2_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6002
+ # name = cpu.cpu2_cpuidle
+ # title = C-state residency time
+ # dim cpu2_active_time name = C0 (active)
+ # dim cpu2_active_time algorithm = percentage-of-incremental-row
+ # dim cpu2_active_time multiplier = 1
+ # dim cpu2_active_time divisor = 1
+ # dim cpu2_cpuidle_state0_time name = POLL
+ # dim cpu2_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu2_cpuidle_state0_time multiplier = 1
+ # dim cpu2_cpuidle_state0_time divisor = 1
+ # dim cpu2_cpuidle_state1_time name = C1
+ # dim cpu2_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu2_cpuidle_state1_time multiplier = 1
+ # dim cpu2_cpuidle_state1_time divisor = 1
+ # dim cpu2_cpuidle_state2_time name = C1E
+ # dim cpu2_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu2_cpuidle_state2_time multiplier = 1
+ # dim cpu2_cpuidle_state2_time divisor = 1
+ # dim cpu2_cpuidle_state3_time name = C3
+ # dim cpu2_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu2_cpuidle_state3_time multiplier = 1
+ # dim cpu2_cpuidle_state3_time divisor = 1
+ # dim cpu2_cpuidle_state4_time name = C6
+ # dim cpu2_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu2_cpuidle_state4_time multiplier = 1
+ # dim cpu2_cpuidle_state4_time divisor = 1
+ # dim cpu2_cpuidle_state5_time name = C7s
+ # dim cpu2_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu2_cpuidle_state5_time multiplier = 1
+ # dim cpu2_cpuidle_state5_time divisor = 1
+
+[cpu.cpu3_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu3_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6003
+ # name = cpu.cpu3_cpuidle
+ # title = C-state residency time
+ # dim cpu3_active_time name = C0 (active)
+ # dim cpu3_active_time algorithm = percentage-of-incremental-row
+ # dim cpu3_active_time multiplier = 1
+ # dim cpu3_active_time divisor = 1
+ # dim cpu3_cpuidle_state0_time name = POLL
+ # dim cpu3_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu3_cpuidle_state0_time multiplier = 1
+ # dim cpu3_cpuidle_state0_time divisor = 1
+ # dim cpu3_cpuidle_state1_time name = C1
+ # dim cpu3_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu3_cpuidle_state1_time multiplier = 1
+ # dim cpu3_cpuidle_state1_time divisor = 1
+ # dim cpu3_cpuidle_state2_time name = C1E
+ # dim cpu3_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu3_cpuidle_state2_time multiplier = 1
+ # dim cpu3_cpuidle_state2_time divisor = 1
+ # dim cpu3_cpuidle_state3_time name = C3
+ # dim cpu3_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu3_cpuidle_state3_time multiplier = 1
+ # dim cpu3_cpuidle_state3_time divisor = 1
+ # dim cpu3_cpuidle_state4_time name = C6
+ # dim cpu3_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu3_cpuidle_state4_time multiplier = 1
+ # dim cpu3_cpuidle_state4_time divisor = 1
+ # dim cpu3_cpuidle_state5_time name = C7s
+ # dim cpu3_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu3_cpuidle_state5_time multiplier = 1
+ # dim cpu3_cpuidle_state5_time divisor = 1
+
+[cpu.cpu4_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu4_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6004
+ # name = cpu.cpu4_cpuidle
+ # title = C-state residency time
+ # dim cpu4_active_time name = C0 (active)
+ # dim cpu4_active_time algorithm = percentage-of-incremental-row
+ # dim cpu4_active_time multiplier = 1
+ # dim cpu4_active_time divisor = 1
+ # dim cpu4_cpuidle_state0_time name = POLL
+ # dim cpu4_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu4_cpuidle_state0_time multiplier = 1
+ # dim cpu4_cpuidle_state0_time divisor = 1
+ # dim cpu4_cpuidle_state1_time name = C1
+ # dim cpu4_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu4_cpuidle_state1_time multiplier = 1
+ # dim cpu4_cpuidle_state1_time divisor = 1
+ # dim cpu4_cpuidle_state2_time name = C1E
+ # dim cpu4_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu4_cpuidle_state2_time multiplier = 1
+ # dim cpu4_cpuidle_state2_time divisor = 1
+ # dim cpu4_cpuidle_state3_time name = C3
+ # dim cpu4_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu4_cpuidle_state3_time multiplier = 1
+ # dim cpu4_cpuidle_state3_time divisor = 1
+ # dim cpu4_cpuidle_state4_time name = C6
+ # dim cpu4_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu4_cpuidle_state4_time multiplier = 1
+ # dim cpu4_cpuidle_state4_time divisor = 1
+ # dim cpu4_cpuidle_state5_time name = C7s
+ # dim cpu4_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu4_cpuidle_state5_time multiplier = 1
+ # dim cpu4_cpuidle_state5_time divisor = 1
+
+[cpu.cpu5_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu5_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6005
+ # name = cpu.cpu5_cpuidle
+ # title = C-state residency time
+ # dim cpu5_active_time name = C0 (active)
+ # dim cpu5_active_time algorithm = percentage-of-incremental-row
+ # dim cpu5_active_time multiplier = 1
+ # dim cpu5_active_time divisor = 1
+ # dim cpu5_cpuidle_state0_time name = POLL
+ # dim cpu5_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu5_cpuidle_state0_time multiplier = 1
+ # dim cpu5_cpuidle_state0_time divisor = 1
+ # dim cpu5_cpuidle_state1_time name = C1
+ # dim cpu5_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu5_cpuidle_state1_time multiplier = 1
+ # dim cpu5_cpuidle_state1_time divisor = 1
+ # dim cpu5_cpuidle_state2_time name = C1E
+ # dim cpu5_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu5_cpuidle_state2_time multiplier = 1
+ # dim cpu5_cpuidle_state2_time divisor = 1
+ # dim cpu5_cpuidle_state3_time name = C3
+ # dim cpu5_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu5_cpuidle_state3_time multiplier = 1
+ # dim cpu5_cpuidle_state3_time divisor = 1
+ # dim cpu5_cpuidle_state4_time name = C6
+ # dim cpu5_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu5_cpuidle_state4_time multiplier = 1
+ # dim cpu5_cpuidle_state4_time divisor = 1
+ # dim cpu5_cpuidle_state5_time name = C7s
+ # dim cpu5_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu5_cpuidle_state5_time multiplier = 1
+ # dim cpu5_cpuidle_state5_time divisor = 1
+
+[cpu.cpu6_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu6_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6006
+ # name = cpu.cpu6_cpuidle
+ # title = C-state residency time
+ # dim cpu6_active_time name = C0 (active)
+ # dim cpu6_active_time algorithm = percentage-of-incremental-row
+ # dim cpu6_active_time multiplier = 1
+ # dim cpu6_active_time divisor = 1
+ # dim cpu6_cpuidle_state0_time name = POLL
+ # dim cpu6_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu6_cpuidle_state0_time multiplier = 1
+ # dim cpu6_cpuidle_state0_time divisor = 1
+ # dim cpu6_cpuidle_state1_time name = C1
+ # dim cpu6_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu6_cpuidle_state1_time multiplier = 1
+ # dim cpu6_cpuidle_state1_time divisor = 1
+ # dim cpu6_cpuidle_state2_time name = C1E
+ # dim cpu6_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu6_cpuidle_state2_time multiplier = 1
+ # dim cpu6_cpuidle_state2_time divisor = 1
+ # dim cpu6_cpuidle_state3_time name = C3
+ # dim cpu6_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu6_cpuidle_state3_time multiplier = 1
+ # dim cpu6_cpuidle_state3_time divisor = 1
+ # dim cpu6_cpuidle_state4_time name = C6
+ # dim cpu6_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu6_cpuidle_state4_time multiplier = 1
+ # dim cpu6_cpuidle_state4_time divisor = 1
+ # dim cpu6_cpuidle_state5_time name = C7s
+ # dim cpu6_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu6_cpuidle_state5_time multiplier = 1
+ # dim cpu6_cpuidle_state5_time divisor = 1
+
+[cpu.cpu7_cpuidle]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu7_cpuidle
+ # chart type = stacked
+ # type = cpu
+ # family = cpuidle
+ # units = percentage
+ # context = cpuidle.cpuidle
+ # priority = 6007
+ # name = cpu.cpu7_cpuidle
+ # title = C-state residency time
+ # dim cpu7_active_time name = C0 (active)
+ # dim cpu7_active_time algorithm = percentage-of-incremental-row
+ # dim cpu7_active_time multiplier = 1
+ # dim cpu7_active_time divisor = 1
+ # dim cpu7_cpuidle_state0_time name = POLL
+ # dim cpu7_cpuidle_state0_time algorithm = percentage-of-incremental-row
+ # dim cpu7_cpuidle_state0_time multiplier = 1
+ # dim cpu7_cpuidle_state0_time divisor = 1
+ # dim cpu7_cpuidle_state1_time name = C1
+ # dim cpu7_cpuidle_state1_time algorithm = percentage-of-incremental-row
+ # dim cpu7_cpuidle_state1_time multiplier = 1
+ # dim cpu7_cpuidle_state1_time divisor = 1
+ # dim cpu7_cpuidle_state2_time name = C1E
+ # dim cpu7_cpuidle_state2_time algorithm = percentage-of-incremental-row
+ # dim cpu7_cpuidle_state2_time multiplier = 1
+ # dim cpu7_cpuidle_state2_time divisor = 1
+ # dim cpu7_cpuidle_state3_time name = C3
+ # dim cpu7_cpuidle_state3_time algorithm = percentage-of-incremental-row
+ # dim cpu7_cpuidle_state3_time multiplier = 1
+ # dim cpu7_cpuidle_state3_time divisor = 1
+ # dim cpu7_cpuidle_state4_time name = C6
+ # dim cpu7_cpuidle_state4_time algorithm = percentage-of-incremental-row
+ # dim cpu7_cpuidle_state4_time multiplier = 1
+ # dim cpu7_cpuidle_state4_time divisor = 1
+ # dim cpu7_cpuidle_state5_time name = C7s
+ # dim cpu7_cpuidle_state5_time algorithm = percentage-of-incremental-row
+ # dim cpu7_cpuidle_state5_time multiplier = 1
+ # dim cpu7_cpuidle_state5_time divisor = 1
+
+[system.uptime]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.uptime
+ # chart type = line
+ # type = system
+ # family = uptime
+ # units = seconds
+ # context = system.uptime
+ # priority = 1000
+ # name = system.uptime
+ # title = System Uptime
+ # dim uptime name = uptime
+ # dim uptime algorithm = absolute
+ # dim uptime multiplier = 1
+ # dim uptime divisor = 1000
+
+[system.load]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.load
+ # chart type = line
+ # type = system
+ # family = load
+ # units = load
+ # context = system.load
+ # priority = 100
+ # name = system.load
+ # title = System Load Average
+ # dim load1 name = load1
+ # dim load1 algorithm = absolute
+ # dim load1 multiplier = 1
+ # dim load1 divisor = 1000
+ # dim load5 name = load5
+ # dim load5 algorithm = absolute
+ # dim load5 multiplier = 1
+ # dim load5 divisor = 1000
+ # dim load15 name = load15
+ # dim load15 algorithm = absolute
+ # dim load15 multiplier = 1
+ # dim load15 divisor = 1000
+
+[system.active_processes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.active_processes
+ # chart type = line
+ # type = system
+ # family = processes
+ # units = processes
+ # context = system.active_processes
+ # priority = 750
+ # name = system.active_processes
+ # title = System Active Processes
+ # dim active name = active
+ # dim active algorithm = absolute
+ # dim active multiplier = 1
+ # dim active divisor = 1
+
+[system.entropy]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.entropy
+ # chart type = line
+ # type = system
+ # family = entropy
+ # units = entropy
+ # context = system.entropy
+ # priority = 1000
+ # name = system.entropy
+ # title = Available Entropy
+ # dim entropy name = entropy
+ # dim entropy algorithm = absolute
+ # dim entropy multiplier = 1
+ # dim entropy divisor = 1
+
+[system.interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.interrupts
+ # chart type = stacked
+ # type = system
+ # family = interrupts
+ # units = interrupts/s
+ # context = system.interrupts
+ # priority = 1000
+ # name = system.interrupts
+ # title = System interrupts
+ # dim 0 name = timer_0
+ # dim 0 algorithm = incremental
+ # dim 0 multiplier = 1
+ # dim 0 divisor = 1
+ # dim 8 name = rtc0_8
+ # dim 8 algorithm = incremental
+ # dim 8 multiplier = 1
+ # dim 8 divisor = 1
+ # dim 16 name = ehci_hcd:usb1_16
+ # dim 16 algorithm = incremental
+ # dim 16 multiplier = 1
+ # dim 16 divisor = 1
+ # dim 18 name = snd_hda_intel:card1_18
+ # dim 18 algorithm = incremental
+ # dim 18 multiplier = 1
+ # dim 18 divisor = 1
+ # dim 23 name = ehci_hcd:usb3_23
+ # dim 23 algorithm = incremental
+ # dim 23 multiplier = 1
+ # dim 23 divisor = 1
+ # dim 25 name = ahci[0000:00:1f.2]_25
+ # dim 25 algorithm = incremental
+ # dim 25 multiplier = 1
+ # dim 25 divisor = 1
+ # dim 26 name = xhci_hcd_26
+ # dim 26 algorithm = incremental
+ # dim 26 multiplier = 1
+ # dim 26 divisor = 1
+ # dim 27 name = mei_me_27
+ # dim 27 algorithm = incremental
+ # dim 27 multiplier = 1
+ # dim 27 divisor = 1
+ # dim 28 name = snd_hda_intel:card0_28
+ # dim 28 algorithm = incremental
+ # dim 28 multiplier = 1
+ # dim 28 divisor = 1
+ # dim 29 name = enp4s0_29
+ # dim 29 algorithm = incremental
+ # dim 29 multiplier = 1
+ # dim 29 divisor = 1
+ # dim 30 name = enp4s0-TxRx-0_30
+ # dim 30 algorithm = incremental
+ # dim 30 multiplier = 1
+ # dim 30 divisor = 1
+ # dim 31 name = enp4s0-tx-1_31
+ # dim 31 algorithm = incremental
+ # dim 31 multiplier = 1
+ # dim 31 divisor = 1
+ # dim 32 name = enp4s0-tx-2_32
+ # dim 32 algorithm = incremental
+ # dim 32 multiplier = 1
+ # dim 32 divisor = 1
+ # dim 33 name = enp4s0-tx-3_33
+ # dim 33 algorithm = incremental
+ # dim 33 multiplier = 1
+ # dim 33 divisor = 1
+ # dim 34 name = nvidia_34
+ # dim 34 algorithm = incremental
+ # dim 34 multiplier = 1
+ # dim 34 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim IWI name = IWI
+ # dim IWI algorithm = incremental
+ # dim IWI multiplier = 1
+ # dim IWI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu0_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu0_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1100
+ # name = cpu.cpu0_interrupts
+ # title = CPU0 Interrupts
+ # dim 0 name = timer_0
+ # dim 0 algorithm = incremental
+ # dim 0 multiplier = 1
+ # dim 0 divisor = 1
+ # dim 34 name = nvidia_34
+ # dim 34 algorithm = incremental
+ # dim 34 multiplier = 1
+ # dim 34 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim IWI name = IWI
+ # dim IWI algorithm = incremental
+ # dim IWI multiplier = 1
+ # dim IWI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu1_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu1_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1101
+ # name = cpu.cpu1_interrupts
+ # title = CPU1 Interrupts
+ # dim 27 name = mei_me_27
+ # dim 27 algorithm = incremental
+ # dim 27 multiplier = 1
+ # dim 27 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu2_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu2_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1102
+ # name = cpu.cpu2_interrupts
+ # title = CPU2 Interrupts
+ # dim 8 name = rtc0_8
+ # dim 8 algorithm = incremental
+ # dim 8 multiplier = 1
+ # dim 8 divisor = 1
+ # dim 28 name = snd_hda_intel:card0_28
+ # dim 28 algorithm = incremental
+ # dim 28 multiplier = 1
+ # dim 28 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu3_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu3_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1103
+ # name = cpu.cpu3_interrupts
+ # title = CPU3 Interrupts
+ # dim 18 name = snd_hda_intel:card1_18
+ # dim 18 algorithm = incremental
+ # dim 18 multiplier = 1
+ # dim 18 divisor = 1
+ # dim 29 name = enp4s0_29
+ # dim 29 algorithm = incremental
+ # dim 29 multiplier = 1
+ # dim 29 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim IWI name = IWI
+ # dim IWI algorithm = incremental
+ # dim IWI multiplier = 1
+ # dim IWI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu4_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu4_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1104
+ # name = cpu.cpu4_interrupts
+ # title = CPU4 Interrupts
+ # dim 16 name = ehci_hcd:usb1_16
+ # dim 16 algorithm = incremental
+ # dim 16 multiplier = 1
+ # dim 16 divisor = 1
+ # dim 30 name = enp4s0-TxRx-0_30
+ # dim 30 algorithm = incremental
+ # dim 30 multiplier = 1
+ # dim 30 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu5_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu5_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1105
+ # name = cpu.cpu5_interrupts
+ # title = CPU5 Interrupts
+ # dim 25 name = ahci[0000:00:1f.2]_25
+ # dim 25 algorithm = incremental
+ # dim 25 multiplier = 1
+ # dim 25 divisor = 1
+ # dim 31 name = enp4s0-tx-1_31
+ # dim 31 algorithm = incremental
+ # dim 31 multiplier = 1
+ # dim 31 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu6_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu6_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1106
+ # name = cpu.cpu6_interrupts
+ # title = CPU6 Interrupts
+ # dim 26 name = xhci_hcd_26
+ # dim 26 algorithm = incremental
+ # dim 26 multiplier = 1
+ # dim 26 divisor = 1
+ # dim 32 name = enp4s0-tx-2_32
+ # dim 32 algorithm = incremental
+ # dim 32 multiplier = 1
+ # dim 32 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim IWI name = IWI
+ # dim IWI algorithm = incremental
+ # dim IWI multiplier = 1
+ # dim IWI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[cpu.cpu7_interrupts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu7_interrupts
+ # chart type = stacked
+ # type = cpu
+ # family = interrupts
+ # units = interrupts/s
+ # context = cpu.interrupts
+ # priority = 1107
+ # name = cpu.cpu7_interrupts
+ # title = CPU7 Interrupts
+ # dim 23 name = ehci_hcd:usb3_23
+ # dim 23 algorithm = incremental
+ # dim 23 multiplier = 1
+ # dim 23 divisor = 1
+ # dim 33 name = enp4s0-tx-3_33
+ # dim 33 algorithm = incremental
+ # dim 33 multiplier = 1
+ # dim 33 divisor = 1
+ # dim NMI name = NMI
+ # dim NMI algorithm = incremental
+ # dim NMI multiplier = 1
+ # dim NMI divisor = 1
+ # dim LOC name = LOC
+ # dim LOC algorithm = incremental
+ # dim LOC multiplier = 1
+ # dim LOC divisor = 1
+ # dim PMI name = PMI
+ # dim PMI algorithm = incremental
+ # dim PMI multiplier = 1
+ # dim PMI divisor = 1
+ # dim RES name = RES
+ # dim RES algorithm = incremental
+ # dim RES multiplier = 1
+ # dim RES divisor = 1
+ # dim CAL name = CAL
+ # dim CAL algorithm = incremental
+ # dim CAL multiplier = 1
+ # dim CAL divisor = 1
+ # dim TLB name = TLB
+ # dim TLB algorithm = incremental
+ # dim TLB multiplier = 1
+ # dim TLB divisor = 1
+ # dim MCP name = MCP
+ # dim MCP algorithm = incremental
+ # dim MCP multiplier = 1
+ # dim MCP divisor = 1
+
+[system.softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.softirqs
+ # chart type = stacked
+ # type = system
+ # family = softirqs
+ # units = softirqs/s
+ # context = system.softirqs
+ # priority = 950
+ # name = system.softirqs
+ # title = System softirqs
+ # dim HI name = HI
+ # dim HI algorithm = incremental
+ # dim HI multiplier = 1
+ # dim HI divisor = 1
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim HRTIMER name = HRTIMER
+ # dim HRTIMER algorithm = incremental
+ # dim HRTIMER multiplier = 1
+ # dim HRTIMER divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu0_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu0_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3000
+ # name = cpu.cpu0_softirqs
+ # title = CPU0 softirqs
+ # dim HI name = HI
+ # dim HI algorithm = incremental
+ # dim HI multiplier = 1
+ # dim HI divisor = 1
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu1_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu1_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3001
+ # name = cpu.cpu1_softirqs
+ # title = CPU1 softirqs
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu2_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu2_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3002
+ # name = cpu.cpu2_softirqs
+ # title = CPU2 softirqs
+ # dim HI name = HI
+ # dim HI algorithm = incremental
+ # dim HI multiplier = 1
+ # dim HI divisor = 1
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu3_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu3_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3003
+ # name = cpu.cpu3_softirqs
+ # title = CPU3 softirqs
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu4_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu4_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3004
+ # name = cpu.cpu4_softirqs
+ # title = CPU4 softirqs
+ # dim HI name = HI
+ # dim HI algorithm = incremental
+ # dim HI multiplier = 1
+ # dim HI divisor = 1
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim HRTIMER name = HRTIMER
+ # dim HRTIMER algorithm = incremental
+ # dim HRTIMER multiplier = 1
+ # dim HRTIMER divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu5_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu5_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3005
+ # name = cpu.cpu5_softirqs
+ # title = CPU5 softirqs
+ # dim HI name = HI
+ # dim HI algorithm = incremental
+ # dim HI multiplier = 1
+ # dim HI divisor = 1
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu6_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu6_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3006
+ # name = cpu.cpu6_softirqs
+ # title = CPU6 softirqs
+ # dim HI name = HI
+ # dim HI algorithm = incremental
+ # dim HI multiplier = 1
+ # dim HI divisor = 1
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[cpu.cpu7_softirqs]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu7_softirqs
+ # chart type = stacked
+ # type = cpu
+ # family = softirqs
+ # units = softirqs/s
+ # context = cpu.softirqs
+ # priority = 3007
+ # name = cpu.cpu7_softirqs
+ # title = CPU7 softirqs
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim HRTIMER name = HRTIMER
+ # dim HRTIMER algorithm = incremental
+ # dim HRTIMER multiplier = 1
+ # dim HRTIMER divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
+
+[system.pgpgio]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.pgpgio
+ # chart type = area
+ # type = system
+ # family = disk
+ # units = KiB/s
+ # context = system.pgpgio
+ # priority = 151
+ # name = system.pgpgio
+ # title = Memory Paged from/to disk
+ # dim in name = in
+ # dim in algorithm = incremental
+ # dim in multiplier = 1
+ # dim in divisor = 1
+ # dim out name = out
+ # dim out algorithm = incremental
+ # dim out multiplier = -1
+ # dim out divisor = 1
+
+[mem.pgfaults]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/mem.pgfaults
+ # chart type = line
+ # type = mem
+ # family = system
+ # units = faults/s
+ # context = mem.pgfaults
+ # priority = 1030
+ # name = mem.pgfaults
+ # title = Memory Page Faults
+ # dim minor name = minor
+ # dim minor algorithm = incremental
+ # dim minor multiplier = 1
+ # dim minor divisor = 1
+ # dim major name = major
+ # dim major algorithm = incremental
+ # dim major multiplier = -1
+ # dim major divisor = 1
+
+[system.ram]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.ram
+ # chart type = stacked
+ # type = system
+ # family = ram
+ # units = MiB
+ # context = system.ram
+ # priority = 200
+ # name = system.ram
+ # title = System RAM
+ # dim free name = free
+ # dim free algorithm = absolute
+ # dim free multiplier = 1
+ # dim free divisor = 1024
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 1
+ # dim used divisor = 1024
+ # dim cached name = cached
+ # dim cached algorithm = absolute
+ # dim cached multiplier = 1
+ # dim cached divisor = 1024
+ # dim buffers name = buffers
+ # dim buffers algorithm = absolute
+ # dim buffers multiplier = 1
+ # dim buffers divisor = 1024
+
+[mem.available]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/mem.available
+ # chart type = area
+ # type = mem
+ # family = system
+ # units = MiB
+ # context = mem.available
+ # priority = 1010
+ # name = mem.available
+ # title = Available RAM for applications
+ # dim MemAvailable name = avail
+ # dim MemAvailable algorithm = absolute
+ # dim MemAvailable multiplier = 1
+ # dim MemAvailable divisor = 1024
+
+[system.swap]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.swap
+ # chart type = stacked
+ # type = system
+ # family = swap
+ # units = MiB
+ # context = system.swap
+ # priority = 201
+ # name = system.swap
+ # title = System Swap
+ # dim free name = free
+ # dim free algorithm = absolute
+ # dim free multiplier = 1
+ # dim free divisor = 1024
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 1
+ # dim used divisor = 1024
+
+[mem.committed]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/mem.committed
+ # chart type = area
+ # type = mem
+ # family = system
+ # units = MiB
+ # context = mem.committed
+ # priority = 1020
+ # name = mem.committed
+ # title = Committed (Allocated) Memory
+ # dim Committed_AS name = Committed_AS
+ # dim Committed_AS algorithm = absolute
+ # dim Committed_AS multiplier = 1
+ # dim Committed_AS divisor = 1024
+
+[mem.writeback]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/mem.writeback
+ # chart type = line
+ # type = mem
+ # family = kernel
+ # units = MiB
+ # context = mem.writeback
+ # priority = 1100
+ # name = mem.writeback
+ # title = Writeback Memory
+ # dim Dirty name = Dirty
+ # dim Dirty algorithm = absolute
+ # dim Dirty multiplier = 1
+ # dim Dirty divisor = 1024
+ # dim Writeback name = Writeback
+ # dim Writeback algorithm = absolute
+ # dim Writeback multiplier = 1
+ # dim Writeback divisor = 1024
+ # dim FuseWriteback name = FuseWriteback
+ # dim FuseWriteback algorithm = absolute
+ # dim FuseWriteback multiplier = 1
+ # dim FuseWriteback divisor = 1024
+ # dim NfsWriteback name = NfsWriteback
+ # dim NfsWriteback algorithm = absolute
+ # dim NfsWriteback multiplier = 1
+ # dim NfsWriteback divisor = 1024
+ # dim Bounce name = Bounce
+ # dim Bounce algorithm = absolute
+ # dim Bounce multiplier = 1
+ # dim Bounce divisor = 1024
+
+[mem.kernel]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/mem.kernel
+ # chart type = stacked
+ # type = mem
+ # family = kernel
+ # units = MiB
+ # context = mem.kernel
+ # priority = 1101
+ # name = mem.kernel
+ # title = Memory Used by Kernel
+ # dim Slab name = Slab
+ # dim Slab algorithm = absolute
+ # dim Slab multiplier = 1
+ # dim Slab divisor = 1024
+ # dim KernelStack name = KernelStack
+ # dim KernelStack algorithm = absolute
+ # dim KernelStack multiplier = 1
+ # dim KernelStack divisor = 1024
+ # dim PageTables name = PageTables
+ # dim PageTables algorithm = absolute
+ # dim PageTables multiplier = 1
+ # dim PageTables divisor = 1024
+ # dim VmallocUsed name = VmallocUsed
+ # dim VmallocUsed algorithm = absolute
+ # dim VmallocUsed multiplier = 1
+ # dim VmallocUsed divisor = 1024
+
+[mem.slab]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/mem.slab
+ # chart type = stacked
+ # type = mem
+ # family = slab
+ # units = MiB
+ # context = mem.slab
+ # priority = 1200
+ # name = mem.slab
+ # title = Reclaimable Kernel Memory
+ # dim reclaimable name = reclaimable
+ # dim reclaimable algorithm = absolute
+ # dim reclaimable multiplier = 1
+ # dim reclaimable divisor = 1024
+ # dim unreclaimable name = unreclaimable
+ # dim unreclaimable algorithm = absolute
+ # dim unreclaimable multiplier = 1
+ # dim unreclaimable divisor = 1024
+
+[mem.transparent_hugepages]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/mem.transparent_hugepages
+ # chart type = stacked
+ # type = mem
+ # family = hugepages
+ # units = MiB
+ # context = mem.transparent_hugepages
+ # priority = 1250
+ # name = mem.transparent_hugepages
+ # title = Transparent HugePages Memory
+ # dim anonymous name = anonymous
+ # dim anonymous algorithm = absolute
+ # dim anonymous multiplier = 1
+ # dim anonymous divisor = 1024
+ # dim shmem name = shmem
+ # dim shmem algorithm = absolute
+ # dim shmem multiplier = 1
+ # dim shmem divisor = 1024
+
+[net.eth0]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/net.eth0
+ # chart type = area
+ # type = net
+ # family = eth0
+ # units = kilobits/s
+ # context = net.net
+ # priority = 7000
+ # name = net.eth0
+ # title = Bandwidth
+ # dim received name = received
+ # dim received algorithm = incremental
+ # dim received multiplier = 8
+ # dim received divisor = 1000
+ # dim sent name = sent
+ # dim sent algorithm = incremental
+ # dim sent multiplier = -8
+ # dim sent divisor = 1000
+
+[net_packets.eth0]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/net_packets.eth0
+ # chart type = line
+ # type = net_packets
+ # family = eth0
+ # units = packets/s
+ # context = net.packets
+ # priority = 7001
+ # name = net_packets.eth0
+ # title = Packets
+ # dim received name = received
+ # dim received algorithm = incremental
+ # dim received multiplier = 1
+ # dim received divisor = 1
+ # dim sent name = sent
+ # dim sent algorithm = incremental
+ # dim sent multiplier = -1
+ # dim sent divisor = 1
+ # dim multicast name = multicast
+ # dim multicast algorithm = incremental
+ # dim multicast multiplier = 1
+ # dim multicast divisor = 1
+
+[ipv4.sockstat_sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.sockstat_sockets
+ # chart type = line
+ # type = ipv4
+ # family = sockets
+ # units = sockets
+ # context = ipv4.sockstat_sockets
+ # priority = 5100
+ # name = ipv4.sockstat_sockets
+ # title = IPv4 Sockets Used
+ # dim used name = used
+ # dim used algorithm = absolute
+ # dim used multiplier = 1
+ # dim used divisor = 1
+
+[ipv4.sockstat_tcp_sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.sockstat_tcp_sockets
+ # chart type = line
+ # type = ipv4
+ # family = tcp
+ # units = sockets
+ # context = ipv4.sockstat_tcp_sockets
+ # priority = 5201
+ # name = ipv4.sockstat_tcp_sockets
+ # title = IPv4 TCP Sockets
+ # dim alloc name = alloc
+ # dim alloc algorithm = absolute
+ # dim alloc multiplier = 1
+ # dim alloc divisor = 1
+ # dim orphan name = orphan
+ # dim orphan algorithm = absolute
+ # dim orphan multiplier = 1
+ # dim orphan divisor = 1
+ # dim inuse name = inuse
+ # dim inuse algorithm = absolute
+ # dim inuse multiplier = 1
+ # dim inuse divisor = 1
+ # dim timewait name = timewait
+ # dim timewait algorithm = absolute
+ # dim timewait multiplier = 1
+ # dim timewait divisor = 1
+
+[ipv4.sockstat_tcp_mem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.sockstat_tcp_mem
+ # chart type = area
+ # type = ipv4
+ # family = tcp
+ # units = KiB
+ # context = ipv4.sockstat_tcp_mem
+ # priority = 5290
+ # name = ipv4.sockstat_tcp_mem
+ # title = IPv4 TCP Sockets Memory
+ # dim mem name = mem
+ # dim mem algorithm = absolute
+ # dim mem multiplier = 4096
+ # dim mem divisor = 1024
+
+[ipv4.sockstat_udp_sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.sockstat_udp_sockets
+ # chart type = line
+ # type = ipv4
+ # family = udp
+ # units = sockets
+ # context = ipv4.sockstat_udp_sockets
+ # priority = 5300
+ # name = ipv4.sockstat_udp_sockets
+ # title = IPv4 UDP Sockets
+ # dim inuse name = inuse
+ # dim inuse algorithm = absolute
+ # dim inuse multiplier = 1
+ # dim inuse divisor = 1
+
+[ipv4.sockstat_udp_mem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.sockstat_udp_mem
+ # chart type = area
+ # type = ipv4
+ # family = udp
+ # units = KiB
+ # context = ipv4.sockstat_udp_mem
+ # priority = 5390
+ # name = ipv4.sockstat_udp_mem
+ # title = IPv4 UDP Sockets Memory
+ # dim mem name = mem
+ # dim mem algorithm = absolute
+ # dim mem multiplier = 4096
+ # dim mem divisor = 1024
+
+[ipv6.sockstat6_tcp_sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv6.sockstat6_tcp_sockets
+ # chart type = line
+ # type = ipv6
+ # family = tcp6
+ # units = sockets
+ # context = ipv6.sockstat6_tcp_sockets
+ # priority = 6500
+ # name = ipv6.sockstat6_tcp_sockets
+ # title = IPv6 TCP Sockets
+ # dim inuse name = inuse
+ # dim inuse algorithm = absolute
+ # dim inuse multiplier = 1
+ # dim inuse divisor = 1
+
+[ip.tcpconnaborts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ip.tcpconnaborts
+ # chart type = line
+ # type = ip
+ # family = tcp
+ # units = connections/s
+ # context = ip.tcpconnaborts
+ # priority = 4210
+ # name = ip.tcpconnaborts
+ # title = TCP Connection Aborts
+ # dim TCPAbortOnData name = baddata
+ # dim TCPAbortOnData algorithm = incremental
+ # dim TCPAbortOnData multiplier = 1
+ # dim TCPAbortOnData divisor = 1
+ # dim TCPAbortOnClose name = userclosed
+ # dim TCPAbortOnClose algorithm = incremental
+ # dim TCPAbortOnClose multiplier = 1
+ # dim TCPAbortOnClose divisor = 1
+ # dim TCPAbortOnMemory name = nomemory
+ # dim TCPAbortOnMemory algorithm = incremental
+ # dim TCPAbortOnMemory multiplier = 1
+ # dim TCPAbortOnMemory divisor = 1
+ # dim TCPAbortOnTimeout name = timeout
+ # dim TCPAbortOnTimeout algorithm = incremental
+ # dim TCPAbortOnTimeout multiplier = 1
+ # dim TCPAbortOnTimeout divisor = 1
+ # dim TCPAbortOnLinger name = linger
+ # dim TCPAbortOnLinger algorithm = incremental
+ # dim TCPAbortOnLinger multiplier = 1
+ # dim TCPAbortOnLinger divisor = 1
+ # dim TCPAbortFailed name = failed
+ # dim TCPAbortFailed algorithm = incremental
+ # dim TCPAbortFailed multiplier = -1
+ # dim TCPAbortFailed divisor = 1
+
+[ip.tcpofo]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ip.tcpofo
+ # chart type = line
+ # type = ip
+ # family = tcp
+ # units = packets/s
+ # context = ip.tcpofo
+ # priority = 4250
+ # name = ip.tcpofo
+ # title = TCP Out-Of-Order Queue
+ # dim TCPOFOQueue name = inqueue
+ # dim TCPOFOQueue algorithm = incremental
+ # dim TCPOFOQueue multiplier = 1
+ # dim TCPOFOQueue divisor = 1
+ # dim TCPOFODrop name = dropped
+ # dim TCPOFODrop algorithm = incremental
+ # dim TCPOFODrop multiplier = -1
+ # dim TCPOFODrop divisor = 1
+ # dim TCPOFOMerge name = merged
+ # dim TCPOFOMerge algorithm = incremental
+ # dim TCPOFOMerge multiplier = 1
+ # dim TCPOFOMerge divisor = 1
+ # dim OfoPruned name = pruned
+ # dim OfoPruned algorithm = incremental
+ # dim OfoPruned multiplier = -1
+ # dim OfoPruned divisor = 1
+
+[system.ip]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.ip
+ # chart type = area
+ # type = system
+ # family = network
+ # units = kilobits/s
+ # context = system.ip
+ # priority = 501
+ # name = system.ip
+ # title = IP Bandwidth
+ # dim InOctets name = received
+ # dim InOctets algorithm = incremental
+ # dim InOctets multiplier = 8
+ # dim InOctets divisor = 1000
+ # dim OutOctets name = sent
+ # dim OutOctets algorithm = incremental
+ # dim OutOctets multiplier = -8
+ # dim OutOctets divisor = 1000
+
+[ip.bcast]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ip.bcast
+ # chart type = area
+ # type = ip
+ # family = broadcast
+ # units = kilobits/s
+ # context = ip.bcast
+ # priority = 4500
+ # name = ip.bcast
+ # title = IP Broadcast Bandwidth
+ # dim InBcastOctets name = received
+ # dim InBcastOctets algorithm = incremental
+ # dim InBcastOctets multiplier = 8
+ # dim InBcastOctets divisor = 1000
+ # dim OutBcastOctets name = sent
+ # dim OutBcastOctets algorithm = incremental
+ # dim OutBcastOctets multiplier = -8
+ # dim OutBcastOctets divisor = 1000
+
+[ip.bcastpkts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ip.bcastpkts
+ # chart type = line
+ # type = ip
+ # family = broadcast
+ # units = packets/s
+ # context = ip.bcastpkts
+ # priority = 4510
+ # name = ip.bcastpkts
+ # title = IP Broadcast Packets
+ # dim InBcastPkts name = received
+ # dim InBcastPkts algorithm = incremental
+ # dim InBcastPkts multiplier = 1
+ # dim InBcastPkts divisor = 1
+ # dim OutBcastPkts name = sent
+ # dim OutBcastPkts algorithm = incremental
+ # dim OutBcastPkts multiplier = -1
+ # dim OutBcastPkts divisor = 1
+
+[ip.ecnpkts]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ip.ecnpkts
+ # chart type = line
+ # type = ip
+ # family = ecn
+ # units = packets/s
+ # context = ip.ecnpkts
+ # priority = 4700
+ # name = ip.ecnpkts
+ # title = IP ECN Statistics
+ # dim InCEPkts name = CEP
+ # dim InCEPkts algorithm = incremental
+ # dim InCEPkts multiplier = 1
+ # dim InCEPkts divisor = 1
+ # dim InNoECTPkts name = NoECTP
+ # dim InNoECTPkts algorithm = incremental
+ # dim InNoECTPkts multiplier = -1
+ # dim InNoECTPkts divisor = 1
+ # dim InECT0Pkts name = ECTP0
+ # dim InECT0Pkts algorithm = incremental
+ # dim InECT0Pkts multiplier = 1
+ # dim InECT0Pkts divisor = 1
+ # dim InECT1Pkts name = ECTP1
+ # dim InECT1Pkts algorithm = incremental
+ # dim InECT1Pkts multiplier = 1
+ # dim InECT1Pkts divisor = 1
+
+[ipv4.packets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.packets
+ # chart type = line
+ # type = ipv4
+ # family = packets
+ # units = packets/s
+ # context = ipv4.packets
+ # priority = 5130
+ # name = ipv4.packets
+ # title = IPv4 Packets
+ # dim InReceives name = received
+ # dim InReceives algorithm = incremental
+ # dim InReceives multiplier = 1
+ # dim InReceives divisor = 1
+ # dim OutRequests name = sent
+ # dim OutRequests algorithm = incremental
+ # dim OutRequests multiplier = -1
+ # dim OutRequests divisor = 1
+ # dim ForwDatagrams name = forwarded
+ # dim ForwDatagrams algorithm = incremental
+ # dim ForwDatagrams multiplier = 1
+ # dim ForwDatagrams divisor = 1
+ # dim InDelivers name = delivered
+ # dim InDelivers algorithm = incremental
+ # dim InDelivers multiplier = 1
+ # dim InDelivers divisor = 1
+
+[ipv4.tcppackets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.tcppackets
+ # chart type = line
+ # type = ipv4
+ # family = tcp
+ # units = packets/s
+ # context = ipv4.tcppackets
+ # priority = 5204
+ # name = ipv4.tcppackets
+ # title = IPv4 TCP Packets
+ # dim InSegs name = received
+ # dim InSegs algorithm = incremental
+ # dim InSegs multiplier = 1
+ # dim InSegs divisor = 1
+ # dim OutSegs name = sent
+ # dim OutSegs algorithm = incremental
+ # dim OutSegs multiplier = -1
+ # dim OutSegs divisor = 1
+
+[ipv4.tcpopens]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.tcpopens
+ # chart type = line
+ # type = ipv4
+ # family = tcp
+ # units = connections/s
+ # context = ipv4.tcpopens
+ # priority = 5205
+ # name = ipv4.tcpopens
+ # title = IPv4 TCP Opens
+ # dim ActiveOpens name = active
+ # dim ActiveOpens algorithm = incremental
+ # dim ActiveOpens multiplier = 1
+ # dim ActiveOpens divisor = 1
+ # dim PassiveOpens name = passive
+ # dim PassiveOpens algorithm = incremental
+ # dim PassiveOpens multiplier = 1
+ # dim PassiveOpens divisor = 1
+
+[ipv4.tcphandshake]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.tcphandshake
+ # chart type = line
+ # type = ipv4
+ # family = tcp
+ # units = events/s
+ # context = ipv4.tcphandshake
+ # priority = 5230
+ # name = ipv4.tcphandshake
+ # title = IPv4 TCP Handshake Issues
+ # dim EstabResets name = EstabResets
+ # dim EstabResets algorithm = incremental
+ # dim EstabResets multiplier = 1
+ # dim EstabResets divisor = 1
+ # dim OutRsts name = OutRsts
+ # dim OutRsts algorithm = incremental
+ # dim OutRsts multiplier = 1
+ # dim OutRsts divisor = 1
+ # dim AttemptFails name = AttemptFails
+ # dim AttemptFails algorithm = incremental
+ # dim AttemptFails multiplier = 1
+ # dim AttemptFails divisor = 1
+ # dim TCPSynRetrans name = SynRetrans
+ # dim TCPSynRetrans algorithm = incremental
+ # dim TCPSynRetrans multiplier = 1
+ # dim TCPSynRetrans divisor = 1
+
+[ipv4.udppackets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.udppackets
+ # chart type = line
+ # type = ipv4
+ # family = udp
+ # units = packets/s
+ # context = ipv4.udppackets
+ # priority = 5300
+ # name = ipv4.udppackets
+ # title = IPv4 UDP Packets
+ # dim InDatagrams name = received
+ # dim InDatagrams algorithm = incremental
+ # dim InDatagrams multiplier = 1
+ # dim InDatagrams divisor = 1
+ # dim OutDatagrams name = sent
+ # dim OutDatagrams algorithm = incremental
+ # dim OutDatagrams multiplier = -1
+ # dim OutDatagrams divisor = 1
+
+[ipv4.udperrors]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv4.udperrors
+ # chart type = line
+ # type = ipv4
+ # family = udp
+ # units = events/s
+ # context = ipv4.udperrors
+ # priority = 5310
+ # name = ipv4.udperrors
+ # title = IPv4 UDP Errors
+ # dim RcvbufErrors name = RcvbufErrors
+ # dim RcvbufErrors algorithm = incremental
+ # dim RcvbufErrors multiplier = 1
+ # dim RcvbufErrors divisor = 1
+ # dim SndbufErrors name = SndbufErrors
+ # dim SndbufErrors algorithm = incremental
+ # dim SndbufErrors multiplier = -1
+ # dim SndbufErrors divisor = 1
+ # dim InErrors name = InErrors
+ # dim InErrors algorithm = incremental
+ # dim InErrors multiplier = 1
+ # dim InErrors divisor = 1
+ # dim NoPorts name = NoPorts
+ # dim NoPorts algorithm = incremental
+ # dim NoPorts multiplier = 1
+ # dim NoPorts divisor = 1
+ # dim InCsumErrors name = InCsumErrors
+ # dim InCsumErrors algorithm = incremental
+ # dim InCsumErrors multiplier = 1
+ # dim InCsumErrors divisor = 1
+ # dim IgnoredMulti name = IgnoredMulti
+ # dim IgnoredMulti algorithm = incremental
+ # dim IgnoredMulti multiplier = 1
+ # dim IgnoredMulti divisor = 1
+
+[system.ipv6]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.ipv6
+ # chart type = area
+ # type = system
+ # family = network
+ # units = kilobits/s
+ # context = system.ipv6
+ # priority = 502
+ # name = system.ipv6
+ # title = IPv6 Bandwidth
+ # dim InOctets name = received
+ # dim InOctets algorithm = incremental
+ # dim InOctets multiplier = 8
+ # dim InOctets divisor = 1000
+ # dim OutOctets name = sent
+ # dim OutOctets algorithm = incremental
+ # dim OutOctets multiplier = -8
+ # dim OutOctets divisor = 1000
+
+[ipv6.packets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv6.packets
+ # chart type = line
+ # type = ipv6
+ # family = packets
+ # units = packets/s
+ # context = ipv6.packets
+ # priority = 6200
+ # name = ipv6.packets
+ # title = IPv6 Packets
+ # dim InReceives name = received
+ # dim InReceives algorithm = incremental
+ # dim InReceives multiplier = 1
+ # dim InReceives divisor = 1
+ # dim OutRequests name = sent
+ # dim OutRequests algorithm = incremental
+ # dim OutRequests multiplier = -1
+ # dim OutRequests divisor = 1
+ # dim OutForwDatagrams name = forwarded
+ # dim OutForwDatagrams algorithm = incremental
+ # dim OutForwDatagrams multiplier = -1
+ # dim OutForwDatagrams divisor = 1
+ # dim InDelivers name = delivers
+ # dim InDelivers algorithm = incremental
+ # dim InDelivers multiplier = 1
+ # dim InDelivers divisor = 1
+
+[ipv6.errors]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/ipv6.errors
+ # chart type = line
+ # type = ipv6
+ # family = errors
+ # units = packets/s
+ # context = ipv6.errors
+ # priority = 6300
+ # name = ipv6.errors
+ # title = IPv6 Errors
+ # dim InDiscards name = InDiscards
+ # dim InDiscards algorithm = incremental
+ # dim InDiscards multiplier = 1
+ # dim InDiscards divisor = 1
+ # dim OutDiscards name = OutDiscards
+ # dim OutDiscards algorithm = incremental
+ # dim OutDiscards multiplier = -1
+ # dim OutDiscards divisor = 1
+ # dim InHdrErrors name = InHdrErrors
+ # dim InHdrErrors algorithm = incremental
+ # dim InHdrErrors multiplier = 1
+ # dim InHdrErrors divisor = 1
+ # dim InAddrErrors name = InAddrErrors
+ # dim InAddrErrors algorithm = incremental
+ # dim InAddrErrors multiplier = 1
+ # dim InAddrErrors divisor = 1
+ # dim InUnknownProtos name = InUnknownProtos
+ # dim InUnknownProtos algorithm = incremental
+ # dim InUnknownProtos multiplier = 1
+ # dim InUnknownProtos divisor = 1
+ # dim InTooBigErrors name = InTooBigErrors
+ # dim InTooBigErrors algorithm = incremental
+ # dim InTooBigErrors multiplier = 1
+ # dim InTooBigErrors divisor = 1
+ # dim InTruncatedPkts name = InTruncatedPkts
+ # dim InTruncatedPkts algorithm = incremental
+ # dim InTruncatedPkts multiplier = 1
+ # dim InTruncatedPkts divisor = 1
+ # dim InNoRoutes name = InNoRoutes
+ # dim InNoRoutes algorithm = incremental
+ # dim InNoRoutes multiplier = 1
+ # dim InNoRoutes divisor = 1
+ # dim OutNoRoutes name = OutNoRoutes
+ # dim OutNoRoutes algorithm = incremental
+ # dim OutNoRoutes multiplier = -1
+ # dim OutNoRoutes divisor = 1
+
+[system.softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.softnet_stat
+ # chart type = line
+ # type = system
+ # family = softnet_stat
+ # units = events/s
+ # context = system.softnet_stat
+ # priority = 955
+ # name = system.softnet_stat
+ # title = System softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu0_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu0_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4101
+ # name = cpu.cpu0_softnet_stat
+ # title = CPU0 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu1_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu1_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4102
+ # name = cpu.cpu1_softnet_stat
+ # title = CPU1 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu2_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu2_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4103
+ # name = cpu.cpu2_softnet_stat
+ # title = CPU2 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu3_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu3_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4104
+ # name = cpu.cpu3_softnet_stat
+ # title = CPU3 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu4_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu4_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4105
+ # name = cpu.cpu4_softnet_stat
+ # title = CPU4 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu5_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu5_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4106
+ # name = cpu.cpu5_softnet_stat
+ # title = CPU5 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu6_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu6_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4107
+ # name = cpu.cpu6_softnet_stat
+ # title = CPU6 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[cpu.cpu7_softnet_stat]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/cpu.cpu7_softnet_stat
+ # chart type = line
+ # type = cpu
+ # family = softnet_stat
+ # units = events/s
+ # context = cpu.softnet_stat
+ # priority = 4108
+ # name = cpu.cpu7_softnet_stat
+ # title = CPU7 softnet_stat
+ # dim processed name = processed
+ # dim processed algorithm = incremental
+ # dim processed multiplier = 1
+ # dim processed divisor = 1
+ # dim dropped name = dropped
+ # dim dropped algorithm = incremental
+ # dim dropped multiplier = 1
+ # dim dropped divisor = 1
+ # dim squeezed name = squeezed
+ # dim squeezed algorithm = incremental
+ # dim squeezed multiplier = 1
+ # dim squeezed divisor = 1
+ # dim received_rps name = received_rps
+ # dim received_rps algorithm = incremental
+ # dim received_rps multiplier = 1
+ # dim received_rps divisor = 1
+ # dim flow_limit_count name = flow_limit_count
+ # dim flow_limit_count algorithm = incremental
+ # dim flow_limit_count multiplier = 1
+ # dim flow_limit_count divisor = 1
+
+[netfilter.conntrack_sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netfilter.conntrack_sockets
+ # chart type = line
+ # type = netfilter
+ # family = conntrack
+ # units = active connections
+ # context = netfilter.conntrack_sockets
+ # priority = 8700
+ # name = netfilter.conntrack_sockets
+ # title = Connection Tracker Connections
+ # dim connections name = connections
+ # dim connections algorithm = absolute
+ # dim connections multiplier = 1
+ # dim connections divisor = 1
+
+[netfilter.conntrack_new]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netfilter.conntrack_new
+ # chart type = line
+ # type = netfilter
+ # family = conntrack
+ # units = connections/s
+ # context = netfilter.conntrack_new
+ # priority = 8701
+ # name = netfilter.conntrack_new
+ # title = Connection Tracker New Connections
+ # dim new name = new
+ # dim new algorithm = incremental
+ # dim new multiplier = 1
+ # dim new divisor = 1
+ # dim ignore name = ignore
+ # dim ignore algorithm = incremental
+ # dim ignore multiplier = -1
+ # dim ignore divisor = 1
+ # dim invalid name = invalid
+ # dim invalid algorithm = incremental
+ # dim invalid multiplier = -1
+ # dim invalid divisor = 1
+
+[netfilter.conntrack_changes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netfilter.conntrack_changes
+ # chart type = line
+ # type = netfilter
+ # family = conntrack
+ # units = changes/s
+ # context = netfilter.conntrack_changes
+ # priority = 8702
+ # name = netfilter.conntrack_changes
+ # title = Connection Tracker Changes
+ # dim inserted name = inserted
+ # dim inserted algorithm = incremental
+ # dim inserted multiplier = 1
+ # dim inserted divisor = 1
+ # dim deleted name = deleted
+ # dim deleted algorithm = incremental
+ # dim deleted multiplier = -1
+ # dim deleted divisor = 1
+ # dim delete_list name = delete_list
+ # dim delete_list algorithm = incremental
+ # dim delete_list multiplier = -1
+ # dim delete_list divisor = 1
+
+[netfilter.conntrack_expect]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netfilter.conntrack_expect
+ # chart type = line
+ # type = netfilter
+ # family = conntrack
+ # units = expectations/s
+ # context = netfilter.conntrack_expect
+ # priority = 8703
+ # name = netfilter.conntrack_expect
+ # title = Connection Tracker Expectations
+ # dim created name = created
+ # dim created algorithm = incremental
+ # dim created multiplier = 1
+ # dim created divisor = 1
+ # dim deleted name = deleted
+ # dim deleted algorithm = incremental
+ # dim deleted multiplier = -1
+ # dim deleted divisor = 1
+ # dim new name = new
+ # dim new algorithm = incremental
+ # dim new multiplier = 1
+ # dim new divisor = 1
+
+[netfilter.conntrack_search]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netfilter.conntrack_search
+ # chart type = line
+ # type = netfilter
+ # family = conntrack
+ # units = searches/s
+ # context = netfilter.conntrack_search
+ # priority = 8710
+ # name = netfilter.conntrack_search
+ # title = Connection Tracker Searches
+ # dim searched name = searched
+ # dim searched algorithm = incremental
+ # dim searched multiplier = 1
+ # dim searched divisor = 1
+ # dim restarted name = restarted
+ # dim restarted algorithm = incremental
+ # dim restarted multiplier = -1
+ # dim restarted divisor = 1
+ # dim found name = found
+ # dim found algorithm = incremental
+ # dim found multiplier = 1
+ # dim found divisor = 1
+
+[netfilter.conntrack_errors]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netfilter.conntrack_errors
+ # chart type = line
+ # type = netfilter
+ # family = conntrack
+ # units = events/s
+ # context = netfilter.conntrack_errors
+ # priority = 8705
+ # name = netfilter.conntrack_errors
+ # title = Connection Tracker Errors
+ # dim icmp_error name = icmp_error
+ # dim icmp_error algorithm = incremental
+ # dim icmp_error multiplier = 1
+ # dim icmp_error divisor = 1
+ # dim insert_failed name = insert_failed
+ # dim insert_failed algorithm = incremental
+ # dim insert_failed multiplier = -1
+ # dim insert_failed divisor = 1
+ # dim drop name = drop
+ # dim drop algorithm = incremental
+ # dim drop multiplier = -1
+ # dim drop divisor = 1
+ # dim early_drop name = early_drop
+ # dim early_drop algorithm = incremental
+ # dim early_drop multiplier = -1
+ # dim early_drop divisor = 1
+
+[disk.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk.sda
+ # chart type = area
+ # type = disk
+ # family = sda
+ # units = KiB/s
+ # context = disk.io
+ # priority = 2000
+ # name = disk.sda
+ # title = Disk I/O Bandwidth
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 512
+ # dim reads divisor = 1024
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -512
+ # dim writes divisor = 1024
+
+[disk_ops.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_ops.sda
+ # chart type = line
+ # type = disk_ops
+ # family = sda
+ # units = operations/s
+ # context = disk.ops
+ # priority = 2001
+ # name = disk_ops.sda
+ # title = Disk Completed I/O Operations
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[disk_backlog.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_backlog.sda
+ # chart type = area
+ # type = disk_backlog
+ # family = sda
+ # units = milliseconds
+ # context = disk.backlog
+ # priority = 2003
+ # name = disk_backlog.sda
+ # title = Disk Backlog
+ # dim backlog name = backlog
+ # dim backlog algorithm = incremental
+ # dim backlog multiplier = 1
+ # dim backlog divisor = 10
+
+[disk_util.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_util.sda
+ # chart type = area
+ # type = disk_util
+ # family = sda
+ # units = % of time working
+ # context = disk.util
+ # priority = 2004
+ # name = disk_util.sda
+ # title = Disk Utilization Time
+ # dim utilization name = utilization
+ # dim utilization algorithm = incremental
+ # dim utilization multiplier = 1
+ # dim utilization divisor = 10
+
+[disk_iotime.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_iotime.sda
+ # chart type = line
+ # type = disk_iotime
+ # family = sda
+ # units = milliseconds/s
+ # context = disk.iotime
+ # priority = 2022
+ # name = disk_iotime.sda
+ # title = Disk Total I/O Time
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[disk.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk.sdb
+ # chart type = area
+ # type = disk
+ # family = sdb
+ # units = KiB/s
+ # context = disk.io
+ # priority = 2000
+ # name = disk.sdb
+ # title = Disk I/O Bandwidth
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 512
+ # dim reads divisor = 1024
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -512
+ # dim writes divisor = 1024
+
+[disk_ops.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_ops.sdb
+ # chart type = line
+ # type = disk_ops
+ # family = sdb
+ # units = operations/s
+ # context = disk.ops
+ # priority = 2001
+ # name = disk_ops.sdb
+ # title = Disk Completed I/O Operations
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[disk_backlog.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_backlog.sdb
+ # chart type = area
+ # type = disk_backlog
+ # family = sdb
+ # units = milliseconds
+ # context = disk.backlog
+ # priority = 2003
+ # name = disk_backlog.sdb
+ # title = Disk Backlog
+ # dim backlog name = backlog
+ # dim backlog algorithm = incremental
+ # dim backlog multiplier = 1
+ # dim backlog divisor = 10
+
+[disk_util.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_util.sdb
+ # chart type = area
+ # type = disk_util
+ # family = sdb
+ # units = % of time working
+ # context = disk.util
+ # priority = 2004
+ # name = disk_util.sdb
+ # title = Disk Utilization Time
+ # dim utilization name = utilization
+ # dim utilization algorithm = incremental
+ # dim utilization multiplier = 1
+ # dim utilization divisor = 10
+
+[disk_mops.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_mops.sdb
+ # chart type = line
+ # type = disk_mops
+ # family = sdb
+ # units = merged operations/s
+ # context = disk.mops
+ # priority = 2021
+ # name = disk_mops.sdb
+ # title = Disk Merged Operations
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[disk_iotime.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_iotime.sdb
+ # chart type = line
+ # type = disk_iotime
+ # family = sdb
+ # units = milliseconds/s
+ # context = disk.iotime
+ # priority = 2022
+ # name = disk_iotime.sdb
+ # title = Disk Total I/O Time
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[system.io]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.io
+ # chart type = area
+ # type = system
+ # family = disk
+ # units = KiB/s
+ # context = system.io
+ # priority = 150
+ # name = system.io
+ # title = Disk I/O
+ # dim in name = in
+ # dim in algorithm = incremental
+ # dim in multiplier = 1
+ # dim in divisor = 1
+ # dim out name = out
+ # dim out algorithm = incremental
+ # dim out multiplier = -1
+ # dim out divisor = 1
+
+[system.ipc_semaphores]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.ipc_semaphores
+ # chart type = area
+ # type = system
+ # family = ipc semaphores
+ # units = semaphores
+ # context = system.ipc_semaphores
+ # priority = 1203
+ # name = system.ipc_semaphores
+ # title = IPC Semaphores
+ # dim semaphores name = semaphores
+ # dim semaphores algorithm = absolute
+ # dim semaphores multiplier = 1
+ # dim semaphores divisor = 1
+
+[system.ipc_semaphore_arrays]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.ipc_semaphore_arrays
+ # chart type = area
+ # type = system
+ # family = ipc semaphores
+ # units = arrays
+ # context = system.ipc_semaphore_arrays
+ # priority = 1204
+ # name = system.ipc_semaphore_arrays
+ # title = IPC Semaphore Arrays
+ # dim arrays name = arrays
+ # dim arrays algorithm = absolute
+ # dim arrays multiplier = 1
+ # dim arrays divisor = 1
+
+[system.shared_memory_segments]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.shared_memory_segments
+ # chart type = stacked
+ # type = system
+ # family = ipc shared memory
+ # units = segments
+ # context = system.shared_memory_segments
+ # priority = 1205
+ # name = system.shared_memory_segments
+ # title = IPC Shared Memory Number of Segments
+ # dim segments name = segments
+ # dim segments algorithm = absolute
+ # dim segments multiplier = 1
+ # dim segments divisor = 1
+
+[system.shared_memory_bytes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.shared_memory_bytes
+ # chart type = stacked
+ # type = system
+ # family = ipc shared memory
+ # units = bytes
+ # context = system.shared_memory_bytes
+ # priority = 1206
+ # name = system.shared_memory_bytes
+ # title = IPC Shared Memory Used Bytes
+ # dim bytes name = bytes
+ # dim bytes algorithm = absolute
+ # dim bytes multiplier = 1
+ # dim bytes divisor = 1
+
+[netdata.plugin_proc_modules]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.plugin_proc_modules
+ # chart type = stacked
+ # type = netdata
+ # family = proc
+ # units = milliseconds/run
+ # context = netdata.plugin_proc_modules
+ # priority = 132001
+ # name = netdata.plugin_proc_modules
+ # title = Netdata Proc Plugin Modules Durations
+ # dim stat name = stat
+ # dim stat algorithm = absolute
+ # dim stat multiplier = 1
+ # dim stat divisor = 1000
+ # dim uptime name = uptime
+ # dim uptime algorithm = absolute
+ # dim uptime multiplier = 1
+ # dim uptime divisor = 1000
+ # dim loadavg name = loadavg
+ # dim loadavg algorithm = absolute
+ # dim loadavg multiplier = 1
+ # dim loadavg divisor = 1000
+ # dim entropy name = entropy
+ # dim entropy algorithm = absolute
+ # dim entropy multiplier = 1
+ # dim entropy divisor = 1000
+ # dim interrupts name = interrupts
+ # dim interrupts algorithm = absolute
+ # dim interrupts multiplier = 1
+ # dim interrupts divisor = 1000
+ # dim softirqs name = softirqs
+ # dim softirqs algorithm = absolute
+ # dim softirqs multiplier = 1
+ # dim softirqs divisor = 1000
+ # dim vmstat name = vmstat
+ # dim vmstat algorithm = absolute
+ # dim vmstat multiplier = 1
+ # dim vmstat divisor = 1000
+ # dim meminfo name = meminfo
+ # dim meminfo algorithm = absolute
+ # dim meminfo multiplier = 1
+ # dim meminfo divisor = 1000
+ # dim ksm name = ksm
+ # dim ksm algorithm = absolute
+ # dim ksm multiplier = 1
+ # dim ksm divisor = 1000
+ # dim numa name = numa
+ # dim numa algorithm = absolute
+ # dim numa multiplier = 1
+ # dim numa divisor = 1000
+ # dim netdev name = netdev
+ # dim netdev algorithm = absolute
+ # dim netdev multiplier = 1
+ # dim netdev divisor = 1000
+ # dim sockstat name = sockstat
+ # dim sockstat algorithm = absolute
+ # dim sockstat multiplier = 1
+ # dim sockstat divisor = 1000
+ # dim sockstat6 name = sockstat6
+ # dim sockstat6 algorithm = absolute
+ # dim sockstat6 multiplier = 1
+ # dim sockstat6 divisor = 1000
+ # dim netstat name = netstat
+ # dim netstat algorithm = absolute
+ # dim netstat multiplier = 1
+ # dim netstat divisor = 1000
+ # dim snmp name = snmp
+ # dim snmp algorithm = absolute
+ # dim snmp multiplier = 1
+ # dim snmp divisor = 1000
+ # dim snmp6 name = snmp6
+ # dim snmp6 algorithm = absolute
+ # dim snmp6 multiplier = 1
+ # dim snmp6 divisor = 1000
+ # dim softnet name = softnet
+ # dim softnet algorithm = absolute
+ # dim softnet multiplier = 1
+ # dim softnet divisor = 1000
+ # dim conntrack name = conntrack
+ # dim conntrack algorithm = absolute
+ # dim conntrack multiplier = 1
+ # dim conntrack divisor = 1000
+ # dim diskstats name = diskstats
+ # dim diskstats algorithm = absolute
+ # dim diskstats multiplier = 1
+ # dim diskstats divisor = 1000
+ # dim mdstat name = mdstat
+ # dim mdstat algorithm = absolute
+ # dim mdstat multiplier = 1
+ # dim mdstat divisor = 1000
+ # dim btrfs name = btrfs
+ # dim btrfs algorithm = absolute
+ # dim btrfs multiplier = 1
+ # dim btrfs divisor = 1000
+ # dim ipc name = ipc
+ # dim ipc algorithm = absolute
+ # dim ipc multiplier = 1
+ # dim ipc divisor = 1000
+ # dim power_supply name = power_supply
+ # dim power_supply algorithm = absolute
+ # dim power_supply multiplier = 1
+ # dim power_supply divisor = 1000
+
+[netdata.plugin_proc_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.plugin_proc_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = proc
+ # units = milliseconds/s
+ # context = netdata.plugin_proc_cpu
+ # priority = 132000
+ # name = netdata.plugin_proc_cpu
+ # title = Netdata Proc Plugin CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.server_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.server_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = netdata
+ # units = milliseconds/s
+ # context = netdata.server_cpu
+ # priority = 130000
+ # name = netdata.server_cpu
+ # title = Netdata CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.clients]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.clients
+ # chart type = line
+ # type = netdata
+ # family = netdata
+ # units = connected clients
+ # context = netdata.clients
+ # priority = 130200
+ # name = netdata.clients
+ # title = Netdata Web Clients
+ # dim clients name = clients
+ # dim clients algorithm = absolute
+ # dim clients multiplier = 1
+ # dim clients divisor = 1
+
+[netdata.requests]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.requests
+ # chart type = line
+ # type = netdata
+ # family = netdata
+ # units = requests/s
+ # context = netdata.requests
+ # priority = 130300
+ # name = netdata.requests
+ # title = Netdata Web Requests
+ # dim requests name = requests
+ # dim requests algorithm = incremental
+ # dim requests multiplier = 1
+ # dim requests divisor = 1
+
+[netdata.net]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.net
+ # chart type = area
+ # type = netdata
+ # family = netdata
+ # units = kilobits/s
+ # context = netdata.net
+ # priority = 130000
+ # name = netdata.net
+ # title = Netdata Network Traffic
+ # dim in name = in
+ # dim in algorithm = incremental
+ # dim in multiplier = 8
+ # dim in divisor = 1000
+ # dim out name = out
+ # dim out algorithm = incremental
+ # dim out multiplier = -8
+ # dim out divisor = 1000
+
+[netdata.response_time]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.response_time
+ # chart type = line
+ # type = netdata
+ # family = netdata
+ # units = milliseconds/request
+ # context = netdata.response_time
+ # priority = 130400
+ # name = netdata.response_time
+ # title = Netdata API Response Time
+ # dim average name = average
+ # dim average algorithm = absolute
+ # dim average multiplier = 1
+ # dim average divisor = 1000
+ # dim max name = max
+ # dim max algorithm = absolute
+ # dim max multiplier = 1
+ # dim max divisor = 1000
+
+[netdata.compression_ratio]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.compression_ratio
+ # chart type = line
+ # type = netdata
+ # family = netdata
+ # units = percentage
+ # context = netdata.compression_ratio
+ # priority = 130500
+ # name = netdata.compression_ratio
+ # title = Netdata API Responses Compression Savings Ratio
+ # dim savings name = savings
+ # dim savings algorithm = absolute
+ # dim savings multiplier = 1
+ # dim savings divisor = 1000
+
+[netdata.dbengine_compression_ratio]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.dbengine_compression_ratio
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = percentage
+ # context = netdata.dbengine_compression_ratio
+ # priority = 130502
+ # name = netdata.dbengine_compression_ratio
+ # title = Netdata DB engine data extents' compression savings ratio
+ # dim savings name = savings
+ # dim savings algorithm = absolute
+ # dim savings multiplier = 1
+ # dim savings divisor = 1000
+
+[netdata.page_cache_hit_ratio]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.page_cache_hit_ratio
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = percentage
+ # context = netdata.page_cache_hit_ratio
+ # priority = 130503
+ # name = netdata.page_cache_hit_ratio
+ # title = Netdata DB engine page cache hit ratio
+ # dim ratio name = ratio
+ # dim ratio algorithm = absolute
+ # dim ratio multiplier = 1
+ # dim ratio divisor = 1000
+
+[netdata.page_cache_stats]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.page_cache_stats
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = pages
+ # context = netdata.page_cache_stats
+ # priority = 130504
+ # name = netdata.page_cache_stats
+ # title = Netdata dbengine page cache statistics
+ # dim descriptors name = descriptors
+ # dim descriptors algorithm = absolute
+ # dim descriptors multiplier = 1
+ # dim descriptors divisor = 1
+ # dim populated name = populated
+ # dim populated algorithm = absolute
+ # dim populated multiplier = 1
+ # dim populated divisor = 1
+ # dim dirty name = dirty
+ # dim dirty algorithm = absolute
+ # dim dirty multiplier = 1
+ # dim dirty divisor = 1
+ # dim backfills name = backfills
+ # dim backfills algorithm = incremental
+ # dim backfills multiplier = 1
+ # dim backfills divisor = 1
+ # dim evictions name = evictions
+ # dim evictions algorithm = incremental
+ # dim evictions multiplier = -1
+ # dim evictions divisor = 1
+ # dim used_by_collectors name = used_by_collectors
+ # dim used_by_collectors algorithm = absolute
+ # dim used_by_collectors multiplier = 1
+ # dim used_by_collectors divisor = 1
+
+[netdata.dbengine_long_term_page_stats]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.dbengine_long_term_page_stats
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = pages
+ # context = netdata.dbengine_long_term_page_stats
+ # priority = 130505
+ # name = netdata.dbengine_long_term_page_stats
+ # title = Netdata dbengine long-term page statistics
+ # dim total name = total
+ # dim total algorithm = absolute
+ # dim total multiplier = 1
+ # dim total divisor = 1
+ # dim insertions name = insertions
+ # dim insertions algorithm = incremental
+ # dim insertions multiplier = 1
+ # dim insertions divisor = 1
+ # dim deletions name = deletions
+ # dim deletions algorithm = incremental
+ # dim deletions multiplier = -1
+ # dim deletions divisor = 1
+ # dim flushing_pressure_deletions name = flushing_pressure_deletions
+ # dim flushing_pressure_deletions algorithm = incremental
+ # dim flushing_pressure_deletions multiplier = -1
+ # dim flushing_pressure_deletions divisor = 1
+
+[netdata.dbengine_io_throughput]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.dbengine_io_throughput
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = MiB/s
+ # context = netdata.dbengine_io_throughput
+ # priority = 130506
+ # name = netdata.dbengine_io_throughput
+ # title = Netdata DB engine I/O throughput
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 1
+ # dim reads divisor = 1048576
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -1
+ # dim writes divisor = 1048576
+
+[netdata.dbengine_io_operations]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.dbengine_io_operations
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = operations/s
+ # context = netdata.dbengine_io_operations
+ # priority = 130507
+ # name = netdata.dbengine_io_operations
+ # title = Netdata DB engine I/O operations
+ # dim reads name = reads
+ # dim reads algorithm = incremental
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = incremental
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[netdata.dbengine_global_errors]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.dbengine_global_errors
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = errors/s
+ # context = netdata.dbengine_global_errors
+ # priority = 130508
+ # name = netdata.dbengine_global_errors
+ # title = Netdata DB engine errors
+ # dim io_errors name = io_errors
+ # dim io_errors algorithm = incremental
+ # dim io_errors multiplier = 1
+ # dim io_errors divisor = 1
+ # dim fs_errors name = fs_errors
+ # dim fs_errors algorithm = incremental
+ # dim fs_errors multiplier = 1
+ # dim fs_errors divisor = 1
+ # dim pg_cache_over_half_dirty_events name = pg_cache_over_half_dirty_events
+ # dim pg_cache_over_half_dirty_events algorithm = incremental
+ # dim pg_cache_over_half_dirty_events multiplier = 1
+ # dim pg_cache_over_half_dirty_events divisor = 1
+
+[netdata.dbengine_global_file_descriptors]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.dbengine_global_file_descriptors
+ # chart type = line
+ # type = netdata
+ # family = dbengine
+ # units = descriptors
+ # context = netdata.dbengine_global_file_descriptors
+ # priority = 130509
+ # name = netdata.dbengine_global_file_descriptors
+ # title = Netdata DB engine File Descriptors
+ # dim current name = current
+ # dim current algorithm = absolute
+ # dim current multiplier = 1
+ # dim current divisor = 1
+ # dim max name = max
+ # dim max algorithm = absolute
+ # dim max multiplier = 1
+ # dim max divisor = 1
+
+[netdata.dbengine_ram]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.dbengine_ram
+ # chart type = stacked
+ # type = netdata
+ # family = dbengine
+ # units = MiB
+ # context = netdata.dbengine_ram
+ # priority = 130510
+ # name = netdata.dbengine_ram
+ # title = Netdata DB engine RAM usage
+ # dim cache name = cache
+ # dim cache algorithm = absolute
+ # dim cache multiplier = 1
+ # dim cache divisor = 256
+ # dim collectors name = collectors
+ # dim collectors algorithm = absolute
+ # dim collectors multiplier = 1
+ # dim collectors divisor = 256
+ # dim metadata name = metadata
+ # dim metadata algorithm = absolute
+ # dim metadata multiplier = 1
+ # dim metadata divisor = 1048576
+
+[netdata.web_thread4_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.web_thread4_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = web
+ # units = milliseconds/s
+ # context = netdata.web_cpu
+ # priority = 132003
+ # name = netdata.web_thread4_cpu
+ # title = Netdata web server thread No 4 CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.web_thread1_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.web_thread1_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = web
+ # units = milliseconds/s
+ # context = netdata.web_cpu
+ # priority = 132000
+ # name = netdata.web_thread1_cpu
+ # title = Netdata web server thread No 1 CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.web_thread6_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.web_thread6_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = web
+ # units = milliseconds/s
+ # context = netdata.web_cpu
+ # priority = 132005
+ # name = netdata.web_thread6_cpu
+ # title = Netdata web server thread No 6 CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.web_thread3_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.web_thread3_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = web
+ # units = milliseconds/s
+ # context = netdata.web_cpu
+ # priority = 132002
+ # name = netdata.web_thread3_cpu
+ # title = Netdata web server thread No 3 CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.web_thread2_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.web_thread2_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = web
+ # units = milliseconds/s
+ # context = netdata.web_cpu
+ # priority = 132001
+ # name = netdata.web_thread2_cpu
+ # title = Netdata web server thread No 2 CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[disk_await.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_await.sda
+ # chart type = line
+ # type = disk_await
+ # family = sda
+ # units = milliseconds/operation
+ # context = disk.await
+ # priority = 2005
+ # name = disk_await.sda
+ # title = Average Completed I/O Operation Time
+ # dim reads name = reads
+ # dim reads algorithm = absolute
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = absolute
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[disk_avgsz.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_avgsz.sda
+ # chart type = area
+ # type = disk_avgsz
+ # family = sda
+ # units = KiB/operation
+ # context = disk.avgsz
+ # priority = 2006
+ # name = disk_avgsz.sda
+ # title = Average Completed I/O Operation Bandwidth
+ # dim reads name = reads
+ # dim reads algorithm = absolute
+ # dim reads multiplier = 512
+ # dim reads divisor = 1024
+ # dim writes name = writes
+ # dim writes algorithm = absolute
+ # dim writes multiplier = -512
+ # dim writes divisor = 1024
+
+[disk_svctm.sda]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_svctm.sda
+ # chart type = line
+ # type = disk_svctm
+ # family = sda
+ # units = milliseconds/operation
+ # context = disk.svctm
+ # priority = 2007
+ # name = disk_svctm.sda
+ # title = Average Service Time
+ # dim svctm name = svctm
+ # dim svctm algorithm = absolute
+ # dim svctm multiplier = 1
+ # dim svctm divisor = 1
+
+[disk_await.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_await.sdb
+ # chart type = line
+ # type = disk_await
+ # family = sdb
+ # units = milliseconds/operation
+ # context = disk.await
+ # priority = 2005
+ # name = disk_await.sdb
+ # title = Average Completed I/O Operation Time
+ # dim reads name = reads
+ # dim reads algorithm = absolute
+ # dim reads multiplier = 1
+ # dim reads divisor = 1
+ # dim writes name = writes
+ # dim writes algorithm = absolute
+ # dim writes multiplier = -1
+ # dim writes divisor = 1
+
+[disk_avgsz.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_avgsz.sdb
+ # chart type = area
+ # type = disk_avgsz
+ # family = sdb
+ # units = KiB/operation
+ # context = disk.avgsz
+ # priority = 2006
+ # name = disk_avgsz.sdb
+ # title = Average Completed I/O Operation Bandwidth
+ # dim reads name = reads
+ # dim reads algorithm = absolute
+ # dim reads multiplier = 512
+ # dim reads divisor = 1024
+ # dim writes name = writes
+ # dim writes algorithm = absolute
+ # dim writes multiplier = -512
+ # dim writes divisor = 1024
+
+[disk_svctm.sdb]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/disk_svctm.sdb
+ # chart type = line
+ # type = disk_svctm
+ # family = sdb
+ # units = milliseconds/operation
+ # context = disk.svctm
+ # priority = 2007
+ # name = disk_svctm.sdb
+ # title = Average Service Time
+ # dim svctm name = svctm
+ # dim svctm algorithm = absolute
+ # dim svctm multiplier = 1
+ # dim svctm divisor = 1
+
+[netdata.web_thread5_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.web_thread5_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = web
+ # units = milliseconds/s
+ # context = netdata.web_cpu
+ # priority = 132004
+ # name = netdata.web_thread5_cpu
+ # title = Netdata web server thread No 5 CPU usage
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.apps_cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.apps_cpu
+ # chart type = stacked
+ # type = netdata
+ # family = apps.plugin
+ # units = milliseconds/s
+ # context = netdata.apps_cpu
+ # priority = 140000
+ # name = netdata.apps_cpu
+ # title = Apps Plugin CPU
+ # dim user name = user
+ # dim user algorithm = incremental
+ # dim user multiplier = 1
+ # dim user divisor = 1000
+ # dim system name = system
+ # dim system algorithm = incremental
+ # dim system multiplier = 1
+ # dim system divisor = 1000
+
+[netdata.apps_sizes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.apps_sizes
+ # chart type = line
+ # type = netdata
+ # family = apps.plugin
+ # units = files/s
+ # context = netdata.apps_sizes
+ # priority = 140001
+ # name = netdata.apps_sizes
+ # title = Apps Plugin Files
+ # dim calls name = calls
+ # dim calls algorithm = incremental
+ # dim calls multiplier = 1
+ # dim calls divisor = 1
+ # dim files name = files
+ # dim files algorithm = incremental
+ # dim files multiplier = 1
+ # dim files divisor = 1
+ # dim filenames name = filenames
+ # dim filenames algorithm = incremental
+ # dim filenames multiplier = 1
+ # dim filenames divisor = 1
+ # dim inode_changes name = inode_changes
+ # dim inode_changes algorithm = incremental
+ # dim inode_changes multiplier = 1
+ # dim inode_changes divisor = 1
+ # dim link_changes name = link_changes
+ # dim link_changes algorithm = incremental
+ # dim link_changes multiplier = 1
+ # dim link_changes divisor = 1
+ # dim pids name = pids
+ # dim pids algorithm = absolute
+ # dim pids multiplier = 1
+ # dim pids divisor = 1
+ # dim fds name = fds
+ # dim fds algorithm = absolute
+ # dim fds multiplier = 1
+ # dim fds divisor = 1
+ # dim targets name = targets
+ # dim targets algorithm = absolute
+ # dim targets multiplier = 1
+ # dim targets divisor = 1
+ # dim new_pids name = new pids
+ # dim new_pids algorithm = incremental
+ # dim new_pids multiplier = 1
+ # dim new_pids divisor = 1
+
+[netdata.apps_fix]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.apps_fix
+ # chart type = line
+ # type = netdata
+ # family = apps.plugin
+ # units = percentage
+ # context = netdata.apps_fix
+ # priority = 140002
+ # name = netdata.apps_fix
+ # title = Apps Plugin Normalization Ratios
+ # dim utime name = utime
+ # dim utime algorithm = absolute
+ # dim utime multiplier = 1
+ # dim utime divisor = 10000
+ # dim stime name = stime
+ # dim stime algorithm = absolute
+ # dim stime multiplier = 1
+ # dim stime divisor = 10000
+ # dim gtime name = gtime
+ # dim gtime algorithm = absolute
+ # dim gtime multiplier = 1
+ # dim gtime divisor = 10000
+ # dim minflt name = minflt
+ # dim minflt algorithm = absolute
+ # dim minflt multiplier = 1
+ # dim minflt divisor = 10000
+ # dim majflt name = majflt
+ # dim majflt algorithm = absolute
+ # dim majflt multiplier = 1
+ # dim majflt divisor = 10000
+
+[netdata.apps_children_fix]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/netdata.apps_children_fix
+ # chart type = line
+ # type = netdata
+ # family = apps.plugin
+ # units = percentage
+ # context = netdata.apps_children_fix
+ # priority = 140003
+ # name = netdata.apps_children_fix
+ # title = Apps Plugin Exited Children Normalization Ratios
+ # dim cutime name = cutime
+ # dim cutime algorithm = absolute
+ # dim cutime multiplier = 1
+ # dim cutime divisor = 10000
+ # dim cstime name = cstime
+ # dim cstime algorithm = absolute
+ # dim cstime multiplier = 1
+ # dim cstime divisor = 10000
+ # dim cgtime name = cgtime
+ # dim cgtime algorithm = absolute
+ # dim cgtime multiplier = 1
+ # dim cgtime divisor = 10000
+ # dim cminflt name = cminflt
+ # dim cminflt algorithm = absolute
+ # dim cminflt multiplier = 1
+ # dim cminflt divisor = 10000
+ # dim cmajflt name = cmajflt
+ # dim cmajflt algorithm = absolute
+ # dim cmajflt multiplier = 1
+ # dim cmajflt divisor = 10000
+
+[apps.cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.cpu
+ # chart type = stacked
+ # type = apps
+ # family = cpu
+ # units = percentage
+ # context = apps.cpu
+ # priority = 20001
+ # name = apps.cpu
+ # title = Apps CPU Time (800% = 8 cores)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10000
+
+[apps.mem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.mem
+ # chart type = stacked
+ # type = apps
+ # family = mem
+ # units = MiB
+ # context = apps.mem
+ # priority = 20003
+ # name = apps.mem
+ # title = Apps Real Memory (w/o shared)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1024
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1024
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1024
+
+[apps.vmem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.vmem
+ # chart type = stacked
+ # type = apps
+ # family = mem
+ # units = MiB
+ # context = apps.vmem
+ # priority = 20005
+ # name = apps.vmem
+ # title = Apps Virtual Memory Size
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1024
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1024
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1024
+
+[apps.threads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.threads
+ # chart type = stacked
+ # type = apps
+ # family = processes
+ # units = threads
+ # context = apps.threads
+ # priority = 20006
+ # name = apps.threads
+ # title = Apps Threads
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.processes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.processes
+ # chart type = stacked
+ # type = apps
+ # family = processes
+ # units = processes
+ # context = apps.processes
+ # priority = 20007
+ # name = apps.processes
+ # title = Apps Processes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.uptime]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.uptime
+ # chart type = line
+ # type = apps
+ # family = processes
+ # units = seconds
+ # context = apps.uptime
+ # priority = 20008
+ # name = apps.uptime
+ # title = Apps Carried Over Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.uptime_min]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.uptime_min
+ # chart type = line
+ # type = apps
+ # family = processes
+ # units = seconds
+ # context = apps.uptime_min
+ # priority = 20009
+ # name = apps.uptime_min
+ # title = Apps Minimum Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.uptime_avg]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.uptime_avg
+ # chart type = line
+ # type = apps
+ # family = processes
+ # units = seconds
+ # context = apps.uptime_avg
+ # priority = 20010
+ # name = apps.uptime_avg
+ # title = Apps Average Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.uptime_max]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.uptime_max
+ # chart type = line
+ # type = apps
+ # family = processes
+ # units = seconds
+ # context = apps.uptime_max
+ # priority = 20011
+ # name = apps.uptime_max
+ # title = Apps Maximum Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.cpu_user]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.cpu_user
+ # chart type = stacked
+ # type = apps
+ # family = cpu
+ # units = percentage
+ # context = apps.cpu_user
+ # priority = 20020
+ # name = apps.cpu_user
+ # title = Apps CPU User Time (800% = 8 cores)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10000
+
+[apps.cpu_system]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.cpu_system
+ # chart type = stacked
+ # type = apps
+ # family = cpu
+ # units = percentage
+ # context = apps.cpu_system
+ # priority = 20021
+ # name = apps.cpu_system
+ # title = Apps CPU System Time (800% = 8 cores)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10000
+
+[apps.swap]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.swap
+ # chart type = stacked
+ # type = apps
+ # family = swap
+ # units = MiB
+ # context = apps.swap
+ # priority = 20011
+ # name = apps.swap
+ # title = Apps Swap Memory
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1024
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1024
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1024
+
+[apps.major_faults]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.major_faults
+ # chart type = stacked
+ # type = apps
+ # family = swap
+ # units = page faults/s
+ # context = apps.major_faults
+ # priority = 20012
+ # name = apps.major_faults
+ # title = Apps Major Page Faults (swap read)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10000
+
+[apps.minor_faults]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.minor_faults
+ # chart type = stacked
+ # type = apps
+ # family = mem
+ # units = page faults/s
+ # context = apps.minor_faults
+ # priority = 20011
+ # name = apps.minor_faults
+ # title = Apps Minor Page Faults
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10000
+
+[apps.preads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.preads
+ # chart type = stacked
+ # type = apps
+ # family = disk
+ # units = KiB/s
+ # context = apps.preads
+ # priority = 20002
+ # name = apps.preads
+ # title = Apps Disk Reads
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10240000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10240000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10240000
+
+[apps.pwrites]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.pwrites
+ # chart type = stacked
+ # type = apps
+ # family = disk
+ # units = KiB/s
+ # context = apps.pwrites
+ # priority = 20002
+ # name = apps.pwrites
+ # title = Apps Disk Writes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10240000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10240000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10240000
+
+[apps.lreads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.lreads
+ # chart type = stacked
+ # type = apps
+ # family = disk
+ # units = KiB/s
+ # context = apps.lreads
+ # priority = 20042
+ # name = apps.lreads
+ # title = Apps Disk Logical Reads
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10240000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10240000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10240000
+
+[apps.lwrites]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.lwrites
+ # chart type = stacked
+ # type = apps
+ # family = disk
+ # units = KiB/s
+ # context = apps.lwrites
+ # priority = 20042
+ # name = apps.lwrites
+ # title = Apps I/O Logical Writes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 10240000
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 10240000
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 10240000
+
+[apps.files]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.files
+ # chart type = stacked
+ # type = apps
+ # family = disk
+ # units = open files
+ # context = apps.files
+ # priority = 20050
+ # name = apps.files
+ # title = Apps Open Files
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.sockets
+ # chart type = stacked
+ # type = apps
+ # family = net
+ # units = open sockets
+ # context = apps.sockets
+ # priority = 20051
+ # name = apps.sockets
+ # title = Apps Open Sockets
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[apps.pipes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/apps.pipes
+ # chart type = stacked
+ # type = apps
+ # family = processes
+ # units = open pipes
+ # context = apps.pipes
+ # priority = 20053
+ # name = apps.pipes
+ # title = Apps Pipes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim apps.plugin name = apps.plugin
+ # dim apps.plugin algorithm = absolute
+ # dim apps.plugin multiplier = 1
+ # dim apps.plugin divisor = 1
+ # dim go.d.plugin name = go.d.plugin
+ # dim go.d.plugin algorithm = absolute
+ # dim go.d.plugin multiplier = 1
+ # dim go.d.plugin divisor = 1
+ # dim other name = other
+ # dim other algorithm = absolute
+ # dim other multiplier = 1
+ # dim other divisor = 1
+
+[users.cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.cpu
+ # chart type = stacked
+ # type = users
+ # family = cpu
+ # units = percentage
+ # context = users.cpu
+ # priority = 20001
+ # name = users.cpu
+ # title = Users CPU Time (800% = 8 cores)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+
+[users.mem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.mem
+ # chart type = stacked
+ # type = users
+ # family = mem
+ # units = MiB
+ # context = users.mem
+ # priority = 20003
+ # name = users.mem
+ # title = Users Real Memory (w/o shared)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1024
+
+[users.vmem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.vmem
+ # chart type = stacked
+ # type = users
+ # family = mem
+ # units = MiB
+ # context = users.vmem
+ # priority = 20005
+ # name = users.vmem
+ # title = Users Virtual Memory Size
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1024
+
+[users.threads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.threads
+ # chart type = stacked
+ # type = users
+ # family = processes
+ # units = threads
+ # context = users.threads
+ # priority = 20006
+ # name = users.threads
+ # title = Users Threads
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.processes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.processes
+ # chart type = stacked
+ # type = users
+ # family = processes
+ # units = processes
+ # context = users.processes
+ # priority = 20007
+ # name = users.processes
+ # title = Users Processes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.uptime]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.uptime
+ # chart type = line
+ # type = users
+ # family = processes
+ # units = seconds
+ # context = users.uptime
+ # priority = 20008
+ # name = users.uptime
+ # title = Users Carried Over Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.uptime_min]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.uptime_min
+ # chart type = line
+ # type = users
+ # family = processes
+ # units = seconds
+ # context = users.uptime_min
+ # priority = 20009
+ # name = users.uptime_min
+ # title = Users Minimum Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.uptime_avg]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.uptime_avg
+ # chart type = line
+ # type = users
+ # family = processes
+ # units = seconds
+ # context = users.uptime_avg
+ # priority = 20010
+ # name = users.uptime_avg
+ # title = Users Average Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.uptime_max]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.uptime_max
+ # chart type = line
+ # type = users
+ # family = processes
+ # units = seconds
+ # context = users.uptime_max
+ # priority = 20011
+ # name = users.uptime_max
+ # title = Users Maximum Uptime
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.cpu_user]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.cpu_user
+ # chart type = stacked
+ # type = users
+ # family = cpu
+ # units = percentage
+ # context = users.cpu_user
+ # priority = 20020
+ # name = users.cpu_user
+ # title = Users CPU User Time (800% = 8 cores)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+
+[users.cpu_system]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.cpu_system
+ # chart type = stacked
+ # type = users
+ # family = cpu
+ # units = percentage
+ # context = users.cpu_system
+ # priority = 20021
+ # name = users.cpu_system
+ # title = Users CPU System Time (800% = 8 cores)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+
+[users.swap]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.swap
+ # chart type = stacked
+ # type = users
+ # family = swap
+ # units = MiB
+ # context = users.swap
+ # priority = 20011
+ # name = users.swap
+ # title = Users Swap Memory
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1024
+
+[users.major_faults]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.major_faults
+ # chart type = stacked
+ # type = users
+ # family = swap
+ # units = page faults/s
+ # context = users.major_faults
+ # priority = 20012
+ # name = users.major_faults
+ # title = Users Major Page Faults (swap read)
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+
+[users.minor_faults]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.minor_faults
+ # chart type = stacked
+ # type = users
+ # family = mem
+ # units = page faults/s
+ # context = users.minor_faults
+ # priority = 20011
+ # name = users.minor_faults
+ # title = Users Minor Page Faults
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+
+[users.preads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.preads
+ # chart type = stacked
+ # type = users
+ # family = disk
+ # units = KiB/s
+ # context = users.preads
+ # priority = 20002
+ # name = users.preads
+ # title = Users Disk Reads
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+
+[users.pwrites]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.pwrites
+ # chart type = stacked
+ # type = users
+ # family = disk
+ # units = KiB/s
+ # context = users.pwrites
+ # priority = 20002
+ # name = users.pwrites
+ # title = Users Disk Writes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+
+[users.lreads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.lreads
+ # chart type = stacked
+ # type = users
+ # family = disk
+ # units = KiB/s
+ # context = users.lreads
+ # priority = 20042
+ # name = users.lreads
+ # title = Users Disk Logical Reads
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+
+[users.lwrites]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.lwrites
+ # chart type = stacked
+ # type = users
+ # family = disk
+ # units = KiB/s
+ # context = users.lwrites
+ # priority = 20042
+ # name = users.lwrites
+ # title = Users I/O Logical Writes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+
+[users.files]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.files
+ # chart type = stacked
+ # type = users
+ # family = disk
+ # units = open files
+ # context = users.files
+ # priority = 20050
+ # name = users.files
+ # title = Users Open Files
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.sockets
+ # chart type = stacked
+ # type = users
+ # family = net
+ # units = open sockets
+ # context = users.sockets
+ # priority = 20051
+ # name = users.sockets
+ # title = Users Open Sockets
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[users.pipes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/users.pipes
+ # chart type = stacked
+ # type = users
+ # family = processes
+ # units = open pipes
+ # context = users.pipes
+ # priority = 20053
+ # name = users.pipes
+ # title = Users Pipes
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+
+[groups.cpu]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.cpu
+ # chart type = stacked
+ # type = groups
+ # family = cpu
+ # units = percentage
+ # context = groups.cpu
+ # priority = 20001
+ # name = groups.cpu
+ # title = User Groups CPU Time (800% = 8 cores)
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+
+[groups.mem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.mem
+ # chart type = stacked
+ # type = groups
+ # family = mem
+ # units = MiB
+ # context = groups.mem
+ # priority = 20003
+ # name = groups.mem
+ # title = User Groups Real Memory (w/o shared)
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1024
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+
+[groups.vmem]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.vmem
+ # chart type = stacked
+ # type = groups
+ # family = mem
+ # units = MiB
+ # context = groups.vmem
+ # priority = 20005
+ # name = groups.vmem
+ # title = User Groups Virtual Memory Size
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1024
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+
+[groups.threads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.threads
+ # chart type = stacked
+ # type = groups
+ # family = processes
+ # units = threads
+ # context = groups.threads
+ # priority = 20006
+ # name = groups.threads
+ # title = User Groups Threads
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.processes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.processes
+ # chart type = stacked
+ # type = groups
+ # family = processes
+ # units = processes
+ # context = groups.processes
+ # priority = 20007
+ # name = groups.processes
+ # title = User Groups Processes
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.uptime]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.uptime
+ # chart type = line
+ # type = groups
+ # family = processes
+ # units = seconds
+ # context = groups.uptime
+ # priority = 20008
+ # name = groups.uptime
+ # title = User Groups Carried Over Uptime
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.uptime_min]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.uptime_min
+ # chart type = line
+ # type = groups
+ # family = processes
+ # units = seconds
+ # context = groups.uptime_min
+ # priority = 20009
+ # name = groups.uptime_min
+ # title = User Groups Minimum Uptime
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.uptime_avg]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.uptime_avg
+ # chart type = line
+ # type = groups
+ # family = processes
+ # units = seconds
+ # context = groups.uptime_avg
+ # priority = 20010
+ # name = groups.uptime_avg
+ # title = User Groups Average Uptime
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.uptime_max]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.uptime_max
+ # chart type = line
+ # type = groups
+ # family = processes
+ # units = seconds
+ # context = groups.uptime_max
+ # priority = 20011
+ # name = groups.uptime_max
+ # title = User Groups Maximum Uptime
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.cpu_user]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.cpu_user
+ # chart type = stacked
+ # type = groups
+ # family = cpu
+ # units = percentage
+ # context = groups.cpu_user
+ # priority = 20020
+ # name = groups.cpu_user
+ # title = User Groups CPU User Time (800% = 8 cores)
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+
+[groups.cpu_system]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.cpu_system
+ # chart type = stacked
+ # type = groups
+ # family = cpu
+ # units = percentage
+ # context = groups.cpu_system
+ # priority = 20021
+ # name = groups.cpu_system
+ # title = User Groups CPU System Time (800% = 8 cores)
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+
+[groups.swap]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.swap
+ # chart type = stacked
+ # type = groups
+ # family = swap
+ # units = MiB
+ # context = groups.swap
+ # priority = 20011
+ # name = groups.swap
+ # title = User Groups Swap Memory
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1024
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1024
+
+[groups.major_faults]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.major_faults
+ # chart type = stacked
+ # type = groups
+ # family = swap
+ # units = page faults/s
+ # context = groups.major_faults
+ # priority = 20012
+ # name = groups.major_faults
+ # title = User Groups Major Page Faults (swap read)
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+
+[groups.minor_faults]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.minor_faults
+ # chart type = stacked
+ # type = groups
+ # family = mem
+ # units = page faults/s
+ # context = groups.minor_faults
+ # priority = 20011
+ # name = groups.minor_faults
+ # title = User Groups Minor Page Faults
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10000
+
+[groups.preads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.preads
+ # chart type = stacked
+ # type = groups
+ # family = disk
+ # units = KiB/s
+ # context = groups.preads
+ # priority = 20002
+ # name = groups.preads
+ # title = User Groups Disk Reads
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+
+[groups.pwrites]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.pwrites
+ # chart type = stacked
+ # type = groups
+ # family = disk
+ # units = KiB/s
+ # context = groups.pwrites
+ # priority = 20002
+ # name = groups.pwrites
+ # title = User Groups Disk Writes
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+
+[groups.lreads]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.lreads
+ # chart type = stacked
+ # type = groups
+ # family = disk
+ # units = KiB/s
+ # context = groups.lreads
+ # priority = 20042
+ # name = groups.lreads
+ # title = User Groups Disk Logical Reads
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+
+[groups.lwrites]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.lwrites
+ # chart type = stacked
+ # type = groups
+ # family = disk
+ # units = KiB/s
+ # context = groups.lwrites
+ # priority = 20042
+ # name = groups.lwrites
+ # title = User Groups I/O Logical Writes
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 10240000
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 10240000
+
+[groups.files]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.files
+ # chart type = stacked
+ # type = groups
+ # family = disk
+ # units = open files
+ # context = groups.files
+ # priority = 20050
+ # name = groups.files
+ # title = User Groups Open Files
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.sockets]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.sockets
+ # chart type = stacked
+ # type = groups
+ # family = net
+ # units = open sockets
+ # context = groups.sockets
+ # priority = 20051
+ # name = groups.sockets
+ # title = User Groups Open Sockets
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
+
+[groups.pipes]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/groups.pipes
+ # chart type = stacked
+ # type = groups
+ # family = processes
+ # units = open pipes
+ # context = groups.pipes
+ # priority = 20053
+ # name = groups.pipes
+ # title = User Groups Pipes
+ # dim root name = root
+ # dim root algorithm = absolute
+ # dim root multiplier = 1
+ # dim root divisor = 1
+ # dim netdata name = netdata
+ # dim netdata algorithm = absolute
+ # dim netdata multiplier = 1
+ # dim netdata divisor = 1
diff --git a/build_external/scenarios/aclk-testing/configureVerneMQ.Dockerfile b/build_external/scenarios/aclk-testing/configureVerneMQ.Dockerfile
new file mode 100644
index 0000000..228548c
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/configureVerneMQ.Dockerfile
@@ -0,0 +1,8 @@
+FROM vernemq:latest
+EXPOSE 9002
+COPY vernemq.conf /vernemq/etc/vernemq.conf
+WORKDIR /vernemq
+#RUN openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt -subj '/CN=vernemq'
+RUN openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out server.crt -keyout server.key -subj "/C=SK/ST=XX/L=XX/O=NetdataIsAwesome/OU=NotSupremeLeader/CN=netdata.cloud"
+RUN chown vernemq:vernemq /vernemq/server.key /vernemq/server.crt
+RUN cat /vernemq/etc/vernemq.conf
diff --git a/build_external/scenarios/aclk-testing/paho-compose.yml b/build_external/scenarios/aclk-testing/paho-compose.yml
new file mode 100644
index 0000000..8c39e20
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/paho-compose.yml
@@ -0,0 +1,6 @@
+version: '3.3'
+services:
+ paho_inspect:
+ build:
+ context: .
+ dockerfile: paho.Dockerfile
diff --git a/build_external/scenarios/aclk-testing/paho-inspection.py b/build_external/scenarios/aclk-testing/paho-inspection.py
new file mode 100644
index 0000000..e9343cc
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/paho-inspection.py
@@ -0,0 +1,33 @@
+import ssl
+import paho.mqtt.client as mqtt
+
+def on_connect(mqttc, obj, flags, rc):
+ print("connected rc: "+str(rc), flush=True)
+ mqttc.subscribe("/agent/#",0)
+def on_disconnect(mqttc, obj, flags, rc):
+ print("disconnected rc: "+str(rc), flush=True)
+def on_message(mqttc, obj, msg):
+ print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload), flush=True)
+def on_publish(mqttc, obj, mid):
+ print("mid: "+str(mid), flush=True)
+def on_subscribe(mqttc, obj, mid, granted_qos):
+ print("Subscribed: "+str(mid)+" "+str(granted_qos), flush=True)
+def on_log(mqttc, obj, level, string):
+ print(string)
+print("Starting paho-inspection", flush=True)
+mqttc = mqtt.Client(transport='websockets')
+#mqttc.tls_set(certfile="server.crt", keyfile="server.key", cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLS, ciphers=None)
+#mqttc.tls_set(ca_certs="server.crt", cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLS, ciphers=None)
+mqttc.tls_set(cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLS, ciphers=None)
+mqttc.tls_insecure_set(True)
+mqttc.on_message = on_message
+mqttc.on_connect = on_connect
+mqttc.on_disconnect = on_disconnect
+mqttc.on_publish = on_publish
+mqttc.on_subscribe = on_subscribe
+mqttc.connect("vernemq", 9002, 60)
+
+#mqttc.publish("/agent/mine","Test1")
+#mqttc.subscribe("$SYS/#", 0)
+print("Connected successfully, monitoring /agent/#", flush=True)
+mqttc.loop_forever()
diff --git a/build_external/scenarios/aclk-testing/paho.Dockerfile b/build_external/scenarios/aclk-testing/paho.Dockerfile
new file mode 100644
index 0000000..77a49e7
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/paho.Dockerfile
@@ -0,0 +1,12 @@
+FROM archlinux/base:latest
+
+RUN pacman -Syyu --noconfirm
+RUN pacman --noconfirm --needed -S python-pip
+
+RUN pip install paho-mqtt
+
+RUN mkdir -p /opt/paho
+COPY paho-inspection.py /opt/paho/
+
+WORKDIR /opt/paho
+CMD ["/usr/sbin/python", "paho-inspection.py"] \ No newline at end of file
diff --git a/build_external/scenarios/aclk-testing/vernemq-compose.yml b/build_external/scenarios/aclk-testing/vernemq-compose.yml
new file mode 100644
index 0000000..3ec805a
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/vernemq-compose.yml
@@ -0,0 +1,6 @@
+version: '3.3'
+services:
+ vernemq:
+ build:
+ dockerfile: configureVerneMQ.Dockerfile
+ context: .
diff --git a/build_external/scenarios/aclk-testing/vernemq.conf b/build_external/scenarios/aclk-testing/vernemq.conf
new file mode 100644
index 0000000..18e8432
--- /dev/null
+++ b/build_external/scenarios/aclk-testing/vernemq.conf
@@ -0,0 +1,68 @@
+allow_anonymous = on
+allow_register_during_netsplit = off
+allow_publish_during_netsplit = off
+allow_subscribe_during_netsplit = off
+allow_unsubscribe_during_netsplit = off
+allow_multiple_sessions = off
+coordinate_registrations = on
+max_inflight_messages = 20
+max_online_messages = 1000
+max_offline_messages = 1000
+max_message_size = 0
+upgrade_outgoing_qos = off
+listener.max_connections = 10000
+listener.nr_of_acceptors = 10
+listener.tcp.default = 127.0.0.1:1883
+listener.wss.keyfile = /vernemq/server.key
+listener.wss.certfile = /vernemq/server.crt
+listener.wss.default = 0.0.0.0:9002
+listener.vmq.clustering = 0.0.0.0:44053
+listener.http.default = 127.0.0.1:8888
+listener.ssl.require_certificate = off
+listener.wss.require_certificate = off
+systree_enabled = on
+systree_interval = 20000
+graphite_enabled = off
+graphite_host = localhost
+graphite_port = 2003
+graphite_interval = 20000
+shared_subscription_policy = prefer_local
+plugins.vmq_passwd = on
+plugins.vmq_acl = on
+plugins.vmq_diversity = off
+plugins.vmq_webhooks = off
+plugins.vmq_bridge = off
+metadata_plugin = vmq_plumtree
+vmq_acl.acl_file = ./etc/vmq.acl
+vmq_acl.acl_reload_interval = 10
+vmq_passwd.password_file = ./etc/vmq.passwd
+vmq_passwd.password_reload_interval = 10
+vmq_diversity.script_dir = ./share/lua
+vmq_diversity.auth_postgres.enabled = off
+vmq_diversity.postgres.ssl = off
+vmq_diversity.postgres.password_hash_method = crypt
+vmq_diversity.auth_cockroachdb.enabled = off
+vmq_diversity.cockroachdb.ssl = on
+vmq_diversity.cockroachdb.password_hash_method = bcrypt
+vmq_diversity.auth_mysql.enabled = off
+vmq_diversity.mysql.password_hash_method = password
+vmq_diversity.auth_mongodb.enabled = off
+vmq_diversity.mongodb.ssl = off
+vmq_diversity.auth_redis.enabled = off
+vmq_bcrypt.pool_size = 1
+log.console = file
+log.console.level = info
+log.console.file = ./log/console.log
+log.error.file = ./log/error.log
+log.syslog = off
+log.crash = on
+log.crash.file = ./log/crash.log
+log.crash.maximum_message_size = 64KB
+log.crash.size = 10MB
+log.crash.rotation = $D0
+log.crash.rotation.keep = 5
+nodename = VerneMQ@127.0.0.1
+distributed_cookie = vmq
+erlang.async_threads = 64
+erlang.max_ports = 262144
+leveldb.maximum_memory.percent = 70
diff --git a/build_external/scenarios/gaps_hi/child-compose.yml b/build_external/scenarios/gaps_hi/child-compose.yml
new file mode 100644
index 0000000..2ca306f
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/child-compose.yml
@@ -0,0 +1,13 @@
+version: '3.3'
+services:
+ agent_child:
+ image: debian_10_dev
+ command: /usr/sbin/netdata -D
+ #ports:
+ #- 21002+:19999
+ volumes:
+ - ./child_stream.conf:/etc/netdata/stream.conf:ro
+ #- ./child_guid:/var/lib/netdata/registry/netdata.public.unique.id:ro
+ - ./min.conf:/etc/netdata/netdata.conf:ro
+ cap_add:
+ - SYS_PTRACE
diff --git a/build_external/scenarios/gaps_hi/child_guid b/build_external/scenarios/gaps_hi/child_guid
new file mode 100644
index 0000000..670f7c2
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/child_guid
@@ -0,0 +1 @@
+22222222-2222-2222-2222-222222222222 \ No newline at end of file
diff --git a/build_external/scenarios/gaps_hi/child_stream.conf b/build_external/scenarios/gaps_hi/child_stream.conf
new file mode 100644
index 0000000..2218c68
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/child_stream.conf
@@ -0,0 +1,11 @@
+[stream]
+ enabled = yes
+# destination = tcp:agent_middle
+ destination = tcp:192.168.1.2
+ api key = 00000000-0000-0000-0000-000000000000
+ timeout seconds = 60
+ default port = 19999
+ send charts matching = *
+ buffer size bytes = 10485760
+ reconnect delay seconds = 5
+ initial clock resync iterations = 60
diff --git a/build_external/scenarios/gaps_hi/middle-compose.yml b/build_external/scenarios/gaps_hi/middle-compose.yml
new file mode 100644
index 0000000..c316164
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/middle-compose.yml
@@ -0,0 +1,13 @@
+version: '3.3'
+services:
+ agent_middle:
+ image: debian_10_dev
+ command: /usr/sbin/netdata -D
+ ports:
+ - 21001:19999
+ volumes:
+ - ./middle_stream.conf:/etc/netdata/stream.conf:ro
+ - ./middle_guid:/var/lib/netdata/registry/netdata.public.unique.id:ro
+ - ./min.conf:/etc/netdata/netdata.conf:ro
+ cap_add:
+ - SYS_PTRACE
diff --git a/build_external/scenarios/gaps_hi/middle_guid b/build_external/scenarios/gaps_hi/middle_guid
new file mode 100644
index 0000000..f8a43c2
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/middle_guid
@@ -0,0 +1 @@
+11111111-1111-1111-1111-111111111111 \ No newline at end of file
diff --git a/build_external/scenarios/gaps_hi/middle_stream.conf b/build_external/scenarios/gaps_hi/middle_stream.conf
new file mode 100644
index 0000000..132eaa1
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/middle_stream.conf
@@ -0,0 +1,23 @@
+[stream]
+ enabled = yes
+ destination = tcp:agent_parent
+ api key = 00000000-0000-0000-0000-000000000000
+ timeout seconds = 60
+ default port = 19999
+
+ send charts matching = *
+ buffer size bytes = 1048576
+ reconnect delay seconds = 5
+ initial clock resync iterations = 60
+
+[00000000-0000-0000-0000-000000000000]
+ enabled = yes
+ allow from = *
+ default history = 3600
+ # default memory mode = ram
+
+ health enabled by default = auto
+
+ # postpone alarms for a short period after the sender is connected
+ default postpone alarms on connect seconds = 60
+ multiple connections = allow
diff --git a/build_external/scenarios/gaps_hi/min.conf b/build_external/scenarios/gaps_hi/min.conf
new file mode 100644
index 0000000..83fa23e
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/min.conf
@@ -0,0 +1,6 @@
+[global]
+ debug flags = 0x0000000040000000
+ errors flood protection period = 0
+[web]
+ ssl key = /etc/netdata/ssl/key.pem
+ ssl certificate = /etc/netdata/ssl/cert.pem
diff --git a/build_external/scenarios/gaps_hi/parent-compose.yml b/build_external/scenarios/gaps_hi/parent-compose.yml
new file mode 100644
index 0000000..2944bbc
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/parent-compose.yml
@@ -0,0 +1,13 @@
+version: '3.3'
+services:
+ agent_parent:
+ image: debian_10_dev
+ command: /usr/sbin/netdata -D
+ ports:
+ - 21000:19999
+ volumes:
+ - ./parent_stream.conf:/etc/netdata/stream.conf:ro
+ - ./parent_guid:/var/lib/netdata/registry/netdata.public.unique.id:ro
+ - ./min.conf:/etc/netdata/netdata.conf:ro
+ cap_add:
+ - SYS_PTRACE
diff --git a/build_external/scenarios/gaps_hi/parent_guid b/build_external/scenarios/gaps_hi/parent_guid
new file mode 100644
index 0000000..fee6f32
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/parent_guid
@@ -0,0 +1 @@
+00000000-0000-0000-0000-000000000000 \ No newline at end of file
diff --git a/build_external/scenarios/gaps_hi/parent_stream.conf b/build_external/scenarios/gaps_hi/parent_stream.conf
new file mode 100644
index 0000000..600a9fa
--- /dev/null
+++ b/build_external/scenarios/gaps_hi/parent_stream.conf
@@ -0,0 +1,11 @@
+[00000000-0000-0000-0000-000000000000]
+ enabled = yes
+ allow from = *
+ default history = 3600
+ default memory mode = dbengine
+ health enabled by default = no
+
+ # postpone alarms for a short period after the sender is connected
+ default postpone alarms on connect seconds = 60
+ multiple connections = allow
+
diff --git a/build_external/scenarios/gaps_lo/child-compose.yml b/build_external/scenarios/gaps_lo/child-compose.yml
new file mode 100644
index 0000000..dee06f2
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/child-compose.yml
@@ -0,0 +1,14 @@
+version: '3.3'
+services:
+ agent_child:
+ image: arch_extras_dev
+ #command: /usr/sbin/valgrind --leak-check=full /usr/sbin/netdata -D
+ command: /usr/sbin/netdata -D # gdb does not like valgrind !
+ #ports:
+ #- 21002:19999
+ volumes:
+ - ./child_stream.conf:/etc/netdata/stream.conf:ro
+ # - ./child_guid:/var/lib/netdata/registry/netdata.public.unique.id:ro
+ - ./mostly_off.conf:/etc/netdata/netdata.conf:ro
+ cap_add:
+ - SYS_PTRACE
diff --git a/build_external/scenarios/gaps_lo/child_guid b/build_external/scenarios/gaps_lo/child_guid
new file mode 100644
index 0000000..670f7c2
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/child_guid
@@ -0,0 +1 @@
+22222222-2222-2222-2222-222222222222 \ No newline at end of file
diff --git a/build_external/scenarios/gaps_lo/child_stream.conf b/build_external/scenarios/gaps_lo/child_stream.conf
new file mode 100644
index 0000000..00bcdfa
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/child_stream.conf
@@ -0,0 +1,11 @@
+[stream]
+ # Enable this on child nodes, to have them send metrics.
+ enabled = yes
+ destination = tcp:192.168.1.2
+ api key = 00000000-0000-0000-0000-000000000000
+ timeout seconds = 60
+ default port = 19999
+ send charts matching = *
+ buffer size bytes = 1048576
+ reconnect delay seconds = 5
+ initial clock resync iterations = 60
diff --git a/build_external/scenarios/gaps_lo/middle-compose.yml b/build_external/scenarios/gaps_lo/middle-compose.yml
new file mode 100644
index 0000000..f94e1fe
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/middle-compose.yml
@@ -0,0 +1,14 @@
+version: '3.3'
+services:
+ agent_middle:
+ image: arch_extras_dev
+ #command: /usr/sbin/valgrind --leak-check=full /usr/sbin/netdata -D
+ command: /usr/sbin/netdata -D
+ ports:
+ - 21001:19999
+ volumes:
+ - ./middle_stream.conf:/etc/netdata/stream.conf:ro
+ - ./middle_guid:/var/lib/netdata/registry/netdata.public.unique.id:ro
+ - ./mostly_off.conf:/etc/netdata/netdata.conf:ro
+ cap_add:
+ - SYS_PTRACE
diff --git a/build_external/scenarios/gaps_lo/middle_guid b/build_external/scenarios/gaps_lo/middle_guid
new file mode 100644
index 0000000..f8a43c2
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/middle_guid
@@ -0,0 +1 @@
+11111111-1111-1111-1111-111111111111 \ No newline at end of file
diff --git a/build_external/scenarios/gaps_lo/middle_stream.conf b/build_external/scenarios/gaps_lo/middle_stream.conf
new file mode 100644
index 0000000..3e52e83
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/middle_stream.conf
@@ -0,0 +1,20 @@
+[stream]
+ enabled = yes
+ destination = tcp:agent_parent
+ api key = 00000000-0000-0000-0000-000000000000
+ timeout seconds = 60
+ default port = 19999
+ send charts matching = *
+ buffer size bytes = 1048576
+ reconnect delay seconds = 5
+ initial clock resync iterations = 60
+
+[00000000-0000-0000-0000-000000000000]
+ enabled = yes
+ allow from = *
+ default history = 3600
+ # default memory mode = ram
+ health enabled by default = auto
+ # postpone alarms for a short period after the sender is connected
+ default postpone alarms on connect seconds = 60
+ multiple connections = allow
diff --git a/build_external/scenarios/gaps_lo/mostly_off.conf b/build_external/scenarios/gaps_lo/mostly_off.conf
new file mode 100644
index 0000000..079fef0
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/mostly_off.conf
@@ -0,0 +1,964 @@
+# netdata configuration
+#
+# You can download the latest version of this file, using:
+#
+# wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
+# or
+# curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
+#
+# You can uncomment and change any of the options below.
+# The value shown in the commented settings, is the default value.
+#
+
+# global netdata configuration
+
+[global]
+debug flags = 0x0000000040000000
+errors flood protection period = 0
+
+[plugins]
+ diskspace = no
+ cgroups = no
+ tc = no
+ idlejitter = no
+ ioping = no
+ apps = no
+ go.d = no
+ perf = no
+ fping = no
+ python.d = no
+ charts.d = no
+ nfacct = no
+ cups = no
+ freeipmi = no
+
+[health]
+enabled = no
+
+[statsd]
+enabled = no
+
+[plugin:proc]
+ /proc/uptime = yes
+ /proc/loadavg = no
+ /proc/sys/kernel/random/entropy_avail = no
+ /proc/pressure = no
+ /proc/interrupts = no
+ /proc/softirqs = no
+ /proc/vmstat = no
+ /proc/meminfo = no
+ /sys/kernel/mm/ksm = no
+ /sys/block/zram = no
+ /sys/devices/system/edac/mc = no
+ /sys/devices/system/node = no
+ /proc/net/dev = no
+ /proc/net/sockstat = no
+ /proc/net/sockstat6 = no
+ /proc/net/netstat = no
+ /proc/net/snmp = no
+ /proc/net/snmp6 = no
+ /proc/net/sctp/snmp = no
+ /proc/net/softnet_stat = no
+ /proc/net/ip_vs/stats = no
+ /proc/net/stat/conntrack = no
+ /proc/net/stat/synproxy = no
+ /proc/diskstats = no
+ /proc/mdstat = no
+ /proc/net/rpc/nfsd = no
+ /proc/net/rpc/nfs = no
+ /proc/spl/kstat/zfs/arcstats = no
+ /sys/fs/btrfs = no
+ ipc = no
+ /sys/class/power_supply = no
+
+
+[plugin:proc:/proc/net/dev:docker0]
+enabled = no
+
+[plugin:proc:/proc/net/dev:br-b87e56f878f1]
+enabled = no
+
+[plugin:proc:/proc/net/dev:enp4s0]
+enabled = no
+
+[plugin:proc:/proc/net/stat/nf_conntrack]
+filename to monitor = /proc/net/stat/nf_conntrack
+netfilter new connections = no
+netfilter connection changes = no
+netfilter connection expectations = no
+netfilter connection searches = no
+netfilter errors = no
+netfilter connections = no
+
+[system.idlejitter]
+enabled = no
+
+[netdata.statsd_metrics]
+enabled = no
+
+[netdata.statsd_useful_metrics]
+enabled = no
+
+[netdata.statsd_events]
+enabled = no
+
+[netdata.statsd_reads]
+enabled = no
+
+[netdata.statsd_bytes]
+enabled = no
+
+[netdata.statsd_packets]
+enabled = no
+
+[netdata.tcp_connects]
+enabled = no
+
+[netdata.tcp_connected]
+enabled = no
+
+[netdata.private_charts]
+enabled = no
+
+[netdata.plugin_statsd_charting_cpu]
+enabled = no
+
+[netdata.plugin_statsd_collector1_cpu]
+enabled = no
+
+[netdata.plugin_tc_cpu]
+enabled = no
+
+[netdata.plugin_tc_time]
+enabled = no
+
+[netdata.runtime_sensors]
+enabled = no
+
+[sensors.coretemp-isa-0000_temperature]
+enabled = no
+
+[sensors.acpitz-acpi-0_temperature]
+enabled = no
+
+[system.cpu]
+enabled = yes
+
+[disk_space._dev]
+enabled = no
+
+[netdata.plugin_cgroups_cpu]
+enabled = no
+
+[netdata.apps_cpu]
+enabled = no
+
+[netdata.apps_sizes]
+enabled = no
+
+[netdata.apps_fix]
+enabled = no
+
+[netdata.apps_children_fix]
+enabled = no
+
+[apps.cpu]
+enabled = no
+
+[apps.mem]
+enabled = no
+
+[apps.vmem]
+enabled = no
+
+[apps.threads]
+enabled = no
+
+[apps.processes]
+enabled = no
+
+[apps.uptime]
+enabled = no
+
+[apps.uptime_min]
+enabled = no
+
+[apps.uptime_avg]
+enabled = no
+
+[apps.uptime_max]
+enabled = no
+
+[apps.cpu_user]
+enabled = no
+
+[apps.cpu_system]
+enabled = no
+
+[apps.swap]
+enabled = no
+
+[apps.major_faults]
+enabled = no
+
+[apps.minor_faults]
+enabled = no
+
+[apps.preads]
+enabled = no
+
+[apps.pwrites]
+enabled = no
+
+[apps.lreads]
+enabled = no
+
+[apps.lwrites]
+enabled = no
+
+[apps.files]
+enabled = no
+
+[apps.sockets]
+enabled = no
+
+[apps.pipes]
+enabled = no
+
+[users.cpu]
+enabled = no
+
+[users.mem]
+enabled = no
+
+[users.vmem]
+enabled = no
+
+[users.threads]
+enabled = no
+
+[users.processes]
+enabled = no
+
+[users.uptime]
+enabled = no
+
+[users.uptime_min]
+enabled = no
+
+[users.uptime_avg]
+enabled = no
+
+[users.uptime_max]
+enabled = no
+
+[users.cpu_user]
+enabled = no
+
+[users.cpu_system]
+enabled = no
+
+[users.swap]
+enabled = no
+
+[users.major_faults]
+enabled = no
+
+[users.minor_faults]
+enabled = no
+
+[users.preads]
+enabled = no
+
+[users.pwrites]
+enabled = no
+
+[users.lreads]
+enabled = no
+
+[users.lwrites]
+enabled = no
+
+[users.files]
+enabled = no
+
+[users.sockets]
+enabled = no
+
+[users.pipes]
+enabled = no
+
+[groups.cpu]
+enabled = no
+
+[groups.mem]
+enabled = no
+
+[groups.vmem]
+enabled = no
+
+[groups.threads]
+enabled = no
+
+[groups.processes]
+enabled = no
+
+[groups.uptime]
+enabled = no
+
+[groups.uptime_min]
+enabled = no
+
+[groups.uptime_avg]
+enabled = no
+
+[groups.uptime_max]
+enabled = no
+
+[groups.cpu_user]
+enabled = no
+
+[groups.cpu_system]
+enabled = no
+
+[groups.swap]
+enabled = no
+
+[groups.major_faults]
+enabled = no
+
+[groups.minor_faults]
+enabled = no
+
+[groups.preads]
+enabled = no
+
+[groups.pwrites]
+enabled = no
+
+[groups.lreads]
+enabled = no
+
+[groups.lwrites]
+enabled = no
+
+[groups.files]
+enabled = no
+
+[groups.sockets]
+enabled = no
+
+[groups.pipes]
+enabled = no
+
+[netdata.web_thread4_cpu]
+enabled = no
+
+[netdata.web_thread2_cpu]
+enabled = no
+
+[netdata.web_thread5_cpu]
+enabled = no
+
+[netdata.web_thread3_cpu]
+enabled = no
+
+[netdata.web_thread6_cpu]
+enabled = no
+
+[netdata.web_thread1_cpu]
+enabled = no
+
+[disk_inodes._dev]
+enabled = no
+
+[disk_space._run]
+enabled = no
+
+[disk_inodes._run]
+enabled = no
+
+[disk_space._]
+enabled = no
+
+[disk_inodes._]
+enabled = no
+
+[disk_space._dev_shm]
+enabled = no
+
+[disk_inodes._dev_shm]
+enabled = no
+
+[disk_space._run_lock]
+enabled = no
+
+[disk_inodes._run_lock]
+enabled = no
+
+[disk_space._home]
+enabled = no
+
+[disk_inodes._home]
+enabled = no
+
+[disk_space._boot_efi]
+enabled = no
+
+[disk_space._media_amoss_deb10]
+enabled = no
+
+[netdata.plugin_diskspace]
+enabled = no
+
+[netdata.plugin_diskspace_dt]
+enabled = no
+
+[cpu.cpu0]
+enabled = no
+
+[cpu.cpu1]
+enabled = no
+
+[cpu.cpu2]
+enabled = no
+
+[cpu.cpu3]
+enabled = no
+
+[cpu.cpu4]
+enabled = no
+
+[cpu.cpu5]
+enabled = no
+
+[cpu.cpu6]
+enabled = no
+
+[cpu.cpu7]
+enabled = no
+
+[system.intr]
+enabled = no
+
+[system.ctxt]
+enabled = no
+
+[system.forks]
+enabled = no
+
+[system.processes]
+enabled = no
+
+[cpu.core_throttling]
+enabled = no
+
+[cpu.cpufreq]
+enabled = no
+
+[cpu.cpu0_cpuidle]
+enabled = no
+
+[cpu.cpu1_cpuidle]
+enabled = no
+
+[cpu.cpu2_cpuidle]
+enabled = no
+
+[cpu.cpu3_cpuidle]
+enabled = no
+
+[cpu.cpu4_cpuidle]
+enabled = no
+
+[cpu.cpu5_cpuidle]
+enabled = no
+
+[cpu.cpu6_cpuidle]
+enabled = no
+
+[cpu.cpu7_cpuidle]
+enabled = no
+
+[system.uptime]
+enabled = yes
+
+[system.load]
+enabled = no
+
+[system.active_processes]
+enabled = no
+
+[system.entropy]
+enabled = no
+
+[system.interrupts]
+enabled = no
+
+[cpu.cpu0_interrupts]
+enabled = no
+
+[cpu.cpu1_interrupts]
+enabled = no
+
+[cpu.cpu2_interrupts]
+enabled = no
+
+[cpu.cpu3_interrupts]
+enabled = no
+
+[cpu.cpu4_interrupts]
+enabled = no
+
+[cpu.cpu5_interrupts]
+enabled = no
+
+[cpu.cpu6_interrupts]
+enabled = no
+
+[cpu.cpu7_interrupts]
+enabled = no
+
+[system.softirqs]
+enabled = no
+
+[cpu.cpu0_softirqs]
+enabled = no
+
+[cpu.cpu1_softirqs]
+enabled = no
+
+[cpu.cpu2_softirqs]
+enabled = no
+
+[cpu.cpu3_softirqs]
+enabled = no
+
+[cpu.cpu4_softirqs]
+enabled = no
+
+[cpu.cpu5_softirqs]
+enabled = no
+
+[cpu.cpu6_softirqs]
+enabled = no
+
+[cpu.cpu7_softirqs]
+enabled = no
+
+[system.swapio]
+enabled = no
+
+[system.pgpgio]
+enabled = no
+
+[mem.pgfaults]
+enabled = no
+
+[system.ram]
+enabled = no
+
+[mem.available]
+enabled = no
+
+[system.swap]
+enabled = no
+
+[mem.committed]
+enabled = no
+
+[mem.writeback]
+enabled = no
+
+[mem.kernel]
+enabled = no
+
+[mem.slab]
+enabled = no
+
+[mem.transparent_hugepages]
+enabled = no
+
+[net.docker0]
+enabled = no
+
+[net_packets.docker0]
+enabled = no
+
+[net.br-b87e56f878f1]
+enabled = no
+
+[net_packets.br-b87e56f878f1]
+enabled = no
+
+[net.enp4s0]
+enabled = no
+
+[net_packets.enp4s0]
+enabled = no
+
+[system.net]
+enabled = no
+
+[ipv4.sockstat_sockets]
+enabled = no
+
+[ipv4.sockstat_tcp_sockets]
+enabled = no
+
+[ipv4.sockstat_tcp_mem]
+enabled = no
+
+[ipv4.sockstat_udp_sockets]
+enabled = no
+
+[ipv4.sockstat_udp_mem]
+enabled = no
+
+[ipv4.sockstat_raw_sockets]
+enabled = no
+
+[ipv6.sockstat6_tcp_sockets]
+enabled = no
+
+[ipv6.sockstat6_udp_sockets]
+enabled = no
+
+[ip.tcpconnaborts]
+enabled = no
+
+[ip.tcpreorders]
+enabled = no
+
+[ip.tcpofo]
+enabled = no
+
+[system.ip]
+enabled = no
+
+[ip.inerrors]
+enabled = no
+
+[ip.mcast]
+enabled = no
+
+[ip.bcast]
+enabled = no
+
+[ip.mcastpkts]
+enabled = no
+
+[ip.bcastpkts]
+enabled = no
+
+[ip.ecnpkts]
+enabled = no
+
+[ipv4.packets]
+enabled = no
+
+[ipv4.fragsin]
+enabled = no
+
+[ipv4.errors]
+enabled = no
+
+[ipv4.icmp]
+enabled = no
+
+[ipv4.icmp_errors]
+enabled = no
+
+[ipv4.icmpmsg]
+enabled = no
+
+[ipv4.tcpsock]
+enabled = no
+
+[ipv4.tcppackets]
+enabled = no
+
+[ipv4.tcperrors]
+enabled = no
+
+[ipv4.tcpopens]
+enabled = no
+
+[ipv4.tcphandshake]
+enabled = no
+
+[ipv4.udppackets]
+enabled = no
+
+[ipv4.udperrors]
+enabled = no
+
+[system.ipv6]
+enabled = no
+
+[ipv6.packets]
+enabled = no
+
+[ipv6.errors]
+enabled = no
+
+[ipv6.udppackets]
+enabled = no
+
+[ipv6.udperrors]
+enabled = no
+
+[ipv6.mcast]
+enabled = no
+
+[ipv6.mcastpkts]
+enabled = no
+
+[ipv6.icmp]
+enabled = no
+
+[ipv6.icmperrors]
+enabled = no
+
+[ipv6.icmprouter]
+enabled = no
+
+[ipv6.icmpneighbor]
+enabled = no
+
+[ipv6.icmpmldv2]
+enabled = no
+
+[ipv6.icmptypes]
+enabled = no
+
+[ipv6.ect]
+enabled = no
+
+[system.softnet_stat]
+enabled = no
+
+[cpu.cpu0_softnet_stat]
+enabled = no
+
+[cpu.cpu1_softnet_stat]
+enabled = no
+
+[cpu.cpu2_softnet_stat]
+enabled = no
+
+[cpu.cpu3_softnet_stat]
+enabled = no
+
+[cpu.cpu4_softnet_stat]
+enabled = no
+
+[cpu.cpu5_softnet_stat]
+enabled = no
+
+[cpu.cpu6_softnet_stat]
+enabled = no
+
+[cpu.cpu7_softnet_stat]
+enabled = no
+
+[netfilter.conntrack_sockets]
+enabled = no
+
+[netfilter.conntrack_new]
+enabled = no
+
+[netfilter.conntrack_changes]
+enabled = no
+
+[netfilter.conntrack_expect]
+enabled = no
+
+[netfilter.conntrack_search]
+enabled = no
+
+[netfilter.conntrack_errors]
+enabled = no
+
+[disk.sda]
+enabled = no
+
+[disk_ops.sda]
+enabled = no
+
+[disk_backlog.sda]
+enabled = no
+
+[disk_util.sda]
+enabled = no
+
+[disk_iotime.sda]
+enabled = no
+
+[disk.sdb]
+enabled = no
+
+[disk_ops.sdb]
+enabled = no
+
+[disk_backlog.sdb]
+enabled = no
+
+[disk_util.sdb]
+enabled = no
+
+[disk_mops.sdb]
+enabled = no
+
+[disk_iotime.sdb]
+enabled = no
+
+[disk.sdc]
+enabled = no
+
+[disk_ops.sdc]
+enabled = no
+
+[disk_backlog.sdc]
+enabled = no
+
+[disk_util.sdc]
+enabled = no
+
+[disk_mops.sdc]
+enabled = no
+
+[disk_iotime.sdc]
+enabled = no
+
+[system.io]
+enabled = no
+
+[system.ipc_semaphores]
+enabled = no
+
+[system.ipc_semaphore_arrays]
+enabled = no
+
+[system.shared_memory_segments]
+enabled = no
+
+[system.shared_memory_bytes]
+enabled = no
+
+[netdata.plugin_proc_modules]
+enabled = no
+
+[netdata.plugin_proc_cpu]
+enabled = no
+
+[netdata.server_cpu]
+enabled = no
+
+[netdata.clients]
+enabled = no
+
+[netdata.requests]
+enabled = no
+
+[netdata.net]
+enabled = no
+
+[netdata.response_time]
+enabled = no
+
+[netdata.compression_ratio]
+enabled = no
+
+[netdata.dbengine_compression_ratio]
+enabled = no
+
+[netdata.page_cache_hit_ratio]
+enabled = no
+
+[netdata.page_cache_stats]
+enabled = no
+
+[netdata.dbengine_long_term_page_stats]
+enabled = no
+
+[netdata.dbengine_io_throughput]
+enabled = no
+
+[netdata.dbengine_io_operations]
+enabled = no
+
+[netdata.dbengine_global_errors]
+enabled = no
+
+[netdata.dbengine_global_file_descriptors]
+enabled = no
+
+[netdata.dbengine_ram]
+enabled = no
+
+[disk_await.sda]
+enabled = no
+
+[disk_avgsz.sda]
+enabled = no
+
+[disk_svctm.sda]
+enabled = no
+
+[disk_await.sdb]
+enabled = no
+
+[disk_avgsz.sdb]
+enabled = no
+
+[disk_svctm.sdb]
+enabled = no
+
+[disk_await.sdc]
+enabled = no
+
+[disk_avgsz.sdc]
+enabled = no
+
+[disk_svctm.sdc]
+enabled = no
+
+[netdata.queries]
+enabled = no
+
+[netdata.db_points]
+enabled = no
+
+[services.cpu]
+enabled = no
+
+[services.mem_usage]
+enabled = no
+
+[services.throttle_io_read]
+enabled = no
+
+[services.throttle_io_write]
+enabled = no
+
+[services.throttle_io_ops_read]
+enabled = no
+
+[services.throttle_io_ops_write]
+enabled = no
+
+[netfilter.netlink_new]
+enabled = no
+
+[netfilter.netlink_changes]
+enabled = no
+
+[netfilter.netlink_search]
+enabled = no
+
+[netfilter.netlink_errors]
+enabled = no
+
+[netfilter.netlink_expect]
+enabled = no
diff --git a/build_external/scenarios/gaps_lo/parent-compose.yml b/build_external/scenarios/gaps_lo/parent-compose.yml
new file mode 100644
index 0000000..e7baad2
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/parent-compose.yml
@@ -0,0 +1,13 @@
+version: '3.3'
+services:
+ agent_parent:
+ image: debian_10_dev
+ command: /usr/sbin/netdata -D
+ ports:
+ - 21000:19999
+ volumes:
+ - ./parent_stream.conf:/etc/netdata/stream.conf:ro
+ - ./parent_guid:/var/lib/netdata/registry/netdata.public.unique.id:ro
+ - ./mostly_off.conf:/etc/netdata/netdata.conf:ro
+ cap_add:
+ - SYS_PTRACE
diff --git a/build_external/scenarios/gaps_lo/parent_guid b/build_external/scenarios/gaps_lo/parent_guid
new file mode 100644
index 0000000..fee6f32
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/parent_guid
@@ -0,0 +1 @@
+00000000-0000-0000-0000-000000000000 \ No newline at end of file
diff --git a/build_external/scenarios/gaps_lo/parent_stream.conf b/build_external/scenarios/gaps_lo/parent_stream.conf
new file mode 100644
index 0000000..99611cc
--- /dev/null
+++ b/build_external/scenarios/gaps_lo/parent_stream.conf
@@ -0,0 +1,12 @@
+[00000000-0000-0000-0000-000000000000]
+ enabled = yes
+ allow from = *
+ default history = 3600
+ # default memory mode = ram
+
+ health enabled by default = auto
+
+ # postpone alarms for a short period after the sender is connected
+ default postpone alarms on connect seconds = 60
+ multiple connections = allow
+
diff --git a/build_external/scenarios/only-agent/docker-compose.yml b/build_external/scenarios/only-agent/docker-compose.yml
new file mode 100644
index 0000000..eb1386f
--- /dev/null
+++ b/build_external/scenarios/only-agent/docker-compose.yml
@@ -0,0 +1,8 @@
+version: '3'
+services:
+ agent:
+ image: ${Distro}_${Version}_dev
+ command: /usr/sbin/netdata -D
+ ports:
+ - 80
+ - 443
diff --git a/build_external/scenarios/parent-child/child_stream.conf b/build_external/scenarios/parent-child/child_stream.conf
new file mode 100644
index 0000000..7348f8c
--- /dev/null
+++ b/build_external/scenarios/parent-child/child_stream.conf
@@ -0,0 +1,10 @@
+[stream]
+ enabled = yes
+ destination = tcp:agent_parent
+ api key = 00000000-0000-0000-0000-000000000000
+ timeout seconds = 60
+ default port = 19999
+ send charts matching = *
+ buffer size bytes = 1048576
+ reconnect delay seconds = 5
+ initial clock resync iterations = 60
diff --git a/build_external/scenarios/parent-child/docker-compose.yml b/build_external/scenarios/parent-child/docker-compose.yml
new file mode 100644
index 0000000..ed6df15
--- /dev/null
+++ b/build_external/scenarios/parent-child/docker-compose.yml
@@ -0,0 +1,23 @@
+version: '3.3'
+services:
+ agent_parent:
+ image: debian_10_dev
+ command: /usr/sbin/netdata -D
+ ports:
+ - 20000:19999
+ volumes:
+ - ./parent_stream.conf:/etc/netdata/stream.conf:ro
+ agent_child1:
+ image: debian_9_dev
+ command: /usr/sbin/netdata -D
+ #ports: Removed to allow scaling
+ #- 20001:19999
+ volumes:
+ - ./child_stream.conf:/etc/netdata/stream.conf:ro
+ agent_child2:
+ image: fedora_30_dev
+ command: /usr/sbin/netdata -D
+ #ports: Removed to allow scaling
+ #- 20002:19999
+ volumes:
+ - ./child_stream.conf:/etc/netdata/stream.conf:ro
diff --git a/build_external/scenarios/parent-child/parent_stream.conf b/build_external/scenarios/parent-child/parent_stream.conf
new file mode 100644
index 0000000..bf85ae2
--- /dev/null
+++ b/build_external/scenarios/parent-child/parent_stream.conf
@@ -0,0 +1,7 @@
+[00000000-0000-0000-0000-000000000000]
+ enabled = yes
+ allow from = *
+ default history = 3600
+ health enabled by default = auto
+ default postpone alarms on connect seconds = 60
+ multiple connections = allow