summaryrefslogtreecommitdiffstats
path: root/charts.d
diff options
context:
space:
mode:
Diffstat (limited to 'charts.d')
-rw-r--r--charts.d/Makefile.am31
-rw-r--r--charts.d/Makefile.in575
-rw-r--r--charts.d/README.md344
-rw-r--r--charts.d/ap.chart.sh181
-rw-r--r--charts.d/apache.chart.sh254
-rw-r--r--charts.d/apcupsd.chart.sh198
-rw-r--r--charts.d/cpu_apps.chart.sh71
-rw-r--r--charts.d/cpufreq.chart.sh88
-rw-r--r--charts.d/example.chart.sh119
-rw-r--r--charts.d/exim.chart.sh47
-rw-r--r--charts.d/hddtemp.chart.sh74
-rw-r--r--charts.d/libreswan.chart.sh173
-rw-r--r--charts.d/load_average.chart.sh70
-rw-r--r--charts.d/mem_apps.chart.sh62
-rw-r--r--charts.d/mysql.chart.sh522
-rw-r--r--charts.d/nginx.chart.sh141
-rw-r--r--charts.d/nut.chart.sh222
-rw-r--r--charts.d/opensips.chart.sh322
-rw-r--r--charts.d/phpfpm.chart.sh194
-rw-r--r--charts.d/postfix.chart.sh86
-rw-r--r--charts.d/sensors.chart.sh250
-rw-r--r--charts.d/squid.chart.sh144
-rw-r--r--charts.d/tomcat.chart.sh147
23 files changed, 0 insertions, 4315 deletions
diff --git a/charts.d/Makefile.am b/charts.d/Makefile.am
deleted file mode 100644
index 104ba86af..000000000
--- a/charts.d/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Copyright (C) 2015 Alon Bar-Lev <alon.barlev@gmail.com>
-#
-MAINTAINERCLEANFILES= $(srcdir)/Makefile.in
-
-dist_charts_SCRIPTS = \
- $(NULL)
-
-dist_charts_DATA = \
- README.md \
- ap.chart.sh \
- apcupsd.chart.sh \
- apache.chart.sh \
- cpu_apps.chart.sh \
- cpufreq.chart.sh \
- example.chart.sh \
- exim.chart.sh \
- hddtemp.chart.sh \
- libreswan.chart.sh \
- load_average.chart.sh \
- mem_apps.chart.sh \
- mysql.chart.sh \
- nginx.chart.sh \
- nut.chart.sh \
- opensips.chart.sh \
- phpfpm.chart.sh \
- postfix.chart.sh \
- sensors.chart.sh \
- squid.chart.sh \
- tomcat.chart.sh \
- $(NULL)
diff --git a/charts.d/Makefile.in b/charts.d/Makefile.in
deleted file mode 100644
index ebd1af2be..000000000
--- a/charts.d/Makefile.in
+++ /dev/null
@@ -1,575 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = charts.d
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(dist_charts_SCRIPTS) $(dist_charts_DATA)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_c___atomic.m4 \
- $(top_srcdir)/m4/ax_c__generic.m4 $(top_srcdir)/m4/ax_c_lto.m4 \
- $(top_srcdir)/m4/ax_c_mallinfo.m4 \
- $(top_srcdir)/m4/ax_c_mallopt.m4 \
- $(top_srcdir)/m4/ax_check_compile_flag.m4 \
- $(top_srcdir)/m4/ax_gcc_func_attribute.m4 \
- $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/jemalloc.m4 \
- $(top_srcdir)/m4/tcmalloc.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(chartsdir)" "$(DESTDIR)$(chartsdir)"
-SCRIPTS = $(dist_charts_SCRIPTS)
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-DATA = $(dist_charts_DATA)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPMIMONITORING_CFLAGS = @IPMIMONITORING_CFLAGS@
-IPMIMONITORING_LIBS = @IPMIMONITORING_LIBS@
-LDFLAGS = @LDFLAGS@
-LIBCAP_CFLAGS = @LIBCAP_CFLAGS@
-LIBCAP_LIBS = @LIBCAP_LIBS@
-LIBMNL_CFLAGS = @LIBMNL_CFLAGS@
-LIBMNL_LIBS = @LIBMNL_LIBS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MATH_CFLAGS = @MATH_CFLAGS@
-MATH_LIBS = @MATH_LIBS@
-MKDIR_P = @MKDIR_P@
-NFACCT_CFLAGS = @NFACCT_CFLAGS@
-NFACCT_LIBS = @NFACCT_LIBS@
-OBJEXT = @OBJEXT@
-OPTIONAL_IPMIMONITORING_CFLAGS = @OPTIONAL_IPMIMONITORING_CFLAGS@
-OPTIONAL_IPMIMONITORING_LIBS = @OPTIONAL_IPMIMONITORING_LIBS@
-OPTIONAL_LIBCAP_CFLAGS = @OPTIONAL_LIBCAP_CFLAGS@
-OPTIONAL_LIBCAP_LIBS = @OPTIONAL_LIBCAP_LIBS@
-OPTIONAL_MATH_CLFAGS = @OPTIONAL_MATH_CLFAGS@
-OPTIONAL_MATH_LIBS = @OPTIONAL_MATH_LIBS@
-OPTIONAL_NFACCT_CLFAGS = @OPTIONAL_NFACCT_CLFAGS@
-OPTIONAL_NFACCT_LIBS = @OPTIONAL_NFACCT_LIBS@
-OPTIONAL_UUID_CLFAGS = @OPTIONAL_UUID_CLFAGS@
-OPTIONAL_UUID_LIBS = @OPTIONAL_UUID_LIBS@
-OPTIONAL_ZLIB_CLFAGS = @OPTIONAL_ZLIB_CLFAGS@
-OPTIONAL_ZLIB_LIBS = @OPTIONAL_ZLIB_LIBS@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_RPM_RELEASE = @PACKAGE_RPM_RELEASE@
-PACKAGE_RPM_VERSION = @PACKAGE_RPM_VERSION@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
-PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
-PTHREAD_CC = @PTHREAD_CC@
-PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SSE_CANDIDATE = @SSE_CANDIDATE@
-STRIP = @STRIP@
-UUID_CFLAGS = @UUID_CFLAGS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-ZLIB_CFLAGS = @ZLIB_CFLAGS@
-ZLIB_LIBS = @ZLIB_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-ax_pthread_config = @ax_pthread_config@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-cachedir = @cachedir@
-chartsdir = @chartsdir@
-configdir = @configdir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-has_jemalloc = @has_jemalloc@
-has_tcmalloc = @has_tcmalloc@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-logdir = @logdir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-nodedir = @nodedir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pluginsdir = @pluginsdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pythondir = @pythondir@
-registrydir = @registrydir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-varlibdir = @varlibdir@
-webdir = @webdir@
-
-#
-# Copyright (C) 2015 Alon Bar-Lev <alon.barlev@gmail.com>
-#
-MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
-dist_charts_SCRIPTS = \
- $(NULL)
-
-dist_charts_DATA = \
- README.md \
- ap.chart.sh \
- apcupsd.chart.sh \
- apache.chart.sh \
- cpu_apps.chart.sh \
- cpufreq.chart.sh \
- example.chart.sh \
- exim.chart.sh \
- hddtemp.chart.sh \
- libreswan.chart.sh \
- load_average.chart.sh \
- mem_apps.chart.sh \
- mysql.chart.sh \
- nginx.chart.sh \
- nut.chart.sh \
- opensips.chart.sh \
- phpfpm.chart.sh \
- postfix.chart.sh \
- sensors.chart.sh \
- squid.chart.sh \
- tomcat.chart.sh \
- $(NULL)
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu charts.d/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu charts.d/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-dist_chartsSCRIPTS: $(dist_charts_SCRIPTS)
- @$(NORMAL_INSTALL)
- @list='$(dist_charts_SCRIPTS)'; test -n "$(chartsdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(chartsdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(chartsdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n' \
- -e 'h;s|.*|.|' \
- -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) { files[d] = files[d] " " $$1; \
- if (++n[d] == $(am__install_max)) { \
- print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
- else { print "f", d "/" $$4, $$1 } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(chartsdir)$$dir'"; \
- $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(chartsdir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-dist_chartsSCRIPTS:
- @$(NORMAL_UNINSTALL)
- @list='$(dist_charts_SCRIPTS)'; test -n "$(chartsdir)" || exit 0; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 's,.*/,,;$(transform)'`; \
- dir='$(DESTDIR)$(chartsdir)'; $(am__uninstall_files_from_dir)
-install-dist_chartsDATA: $(dist_charts_DATA)
- @$(NORMAL_INSTALL)
- @list='$(dist_charts_DATA)'; test -n "$(chartsdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(chartsdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(chartsdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(chartsdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(chartsdir)" || exit $$?; \
- done
-
-uninstall-dist_chartsDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(dist_charts_DATA)'; test -n "$(chartsdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(chartsdir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(SCRIPTS) $(DATA)
-installdirs:
- for dir in "$(DESTDIR)$(chartsdir)" "$(DESTDIR)$(chartsdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-dist_chartsDATA install-dist_chartsSCRIPTS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-dist_chartsDATA uninstall-dist_chartsSCRIPTS
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
- ctags-am distclean distclean-generic distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dist_chartsDATA \
- install-dist_chartsSCRIPTS install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
- pdf-am ps ps-am tags-am uninstall uninstall-am \
- uninstall-dist_chartsDATA uninstall-dist_chartsSCRIPTS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/charts.d/README.md b/charts.d/README.md
deleted file mode 100644
index 748af08a1..000000000
--- a/charts.d/README.md
+++ /dev/null
@@ -1,344 +0,0 @@
-The following charts.d plugins are supported:
-
----
-
-# hddtemp
-
-The plugin will collect temperatures from disks
-
-It will create one chart with all active disks
-
-1. **temperature in Celsius**
-
-### configuration
-
-hddtemp needs to be running in daemonized mode
-
-```sh
-# host with daemonized hddtemp
-hddtemp_host="localhost"
-
-# port on which hddtemp is showing data
-hddtemp_port="7634"
-
-# array of included disks
-# the default is to include all
-hddtemp_disks=()
-```
-
----
-
-# libreswan
-
-The plugin will collects bytes-in, bytes-out and uptime for all established libreswan IPSEC tunnels.
-
-The following charts are created, **per tunnel**:
-
-1. **Uptime**
-
- * the uptime of the tunnel
-
-2. **Traffic**
-
- * bytes in
- * bytes out
-
-### configuration
-
-Its config file is `/etc/netdata/charts.d/libreswan.conf`.
-
-The plugin executes 2 commands to collect all the information it needs:
-
-```sh
-ipsec whack --status
-ipsec whack --trafficstatus
-```
-
-The first command is used to extract the currently established tunnels, their IDs and their names.
-The second command is used to extract the current uptime and traffic.
-
-Most probably user `netdata` will not be able to query libreswan, so the `ipsec` commands will be denied.
-The plugin attempts to run `ipsec` as `sudo ipsec ...`, to get access to libreswan statistics.
-
-To allow user `netdata` execute `sudo ipsec ...`, create the file `/etc/sudoers.d/netdata` with this content:
-
-```
-netdata ALL = (root) NOPASSWD: /sbin/ipsec whack --status
-netdata ALL = (root) NOPASSWD: /sbin/ipsec whack --trafficstatus
-```
-
-Make sure the path `/sbin/ipsec` matches your setup (execute `which ipsec` to find the right path).
-
----
-
-# mysql
-
-The plugin will monitor one or more mysql servers
-
-It will produce the following charts:
-
-1. **Bandwidth** in kbps
- * in
- * out
-
-2. **Queries** in queries/sec
- * queries
- * questions
- * slow queries
-
-3. **Operations** in operations/sec
- * opened tables
- * flush
- * commit
- * delete
- * prepare
- * read first
- * read key
- * read next
- * read prev
- * read random
- * read random next
- * rollback
- * save point
- * update
- * write
-
-4. **Table Locks** in locks/sec
- * immediate
- * waited
-
-5. **Select Issues** in issues/sec
- * full join
- * full range join
- * range
- * range check
- * scan
-
-6. **Sort Issues** in issues/sec
- * merge passes
- * range
- * scan
-
-### configuration
-
-You can configure many database servers, like this:
-
-You can provide, per server, the following:
-
-1. a name, anything you like, but keep it short
-2. the mysql command to connect to the server
-3. the mysql command line options to be used for connecting to the server
-
-Here is an example for 2 servers:
-
-```sh
-mysql_opts[server1]="-h server1.example.com"
-mysql_opts[server2]="-h server2.example.com --connect_timeout 2"
-```
-
-The above will use the `mysql` command found in the system path.
-You can also provide a custom mysql command per server, like this:
-
-```sh
-mysql_cmds[server2]="/opt/mysql/bin/mysql"
-```
-
-The above sets the mysql command only for server2. server1 will use the system default.
-
-If no configuration is given, the plugin will attempt to connect to mysql server at localhost.
-
-
----
-
-# nut
-
-The plugin will collect UPS data for all UPSes configured in the system.
-
-The following charts will be created:
-
-1. **UPS Charge**
-
- * percentage changed
-
-2. **UPS Battery Voltage**
-
- * current voltage
- * high voltage
- * low voltage
- * nominal voltage
-
-3. **UPS Input Voltage**
-
- * current voltage
- * fault voltage
- * nominal voltage
-
-4. **UPS Input Current**
-
- * nominal current
-
-5. **UPS Input Frequency**
-
- * current frequency
- * nominal frequency
-
-6. **UPS Output Voltage**
-
- * current voltage
-
-7. **UPS Load**
-
- * current load
-
-8. **UPS Temperature**
-
- * current temperature
-
-
-### configuration
-
-This is the internal default for `/etc/netdata/nut.conf`
-
-```sh
-# a space separated list of UPS names
-# if empty, the list returned by 'upsc -l' will be used
-nut_ups=
-
-# how frequently to collect UPS data
-nut_update_every=2
-```
-
----
-
-# postfix
-
-The plugin will collect the postfix queue size.
-
-It will create two charts:
-
-1. **queue size in emails**
-2. **queue size in KB**
-
-### configuration
-
-This is the internal default for `/etc/netdata/postfix.conf`
-
-```sh
-# the postqueue command
-# if empty, it will use the one found in the system path
-postfix_postqueue=
-
-# how frequently to collect queue size
-postfix_update_every=15
-```
-
----
-
-# sensors
-
-The plugin will provide charts for all configured system sensors
-
-> This plugin is reading sensors directly from the kernel.
-> The `lm-sensors` package is able to perform calculations on the
-> kernel provided values, this plugin will not perform.
-> So, the values graphed, are the raw hardware values of the sensors.
-
-The plugin will create netdata charts for:
-
-1. **Temperature**
-2. **Voltage**
-3. **Current**
-4. **Power**
-5. **Fans Speed**
-6. **Energy**
-7. **Humidity**
-
-One chart for every sensor chip found and each of the above will be created.
-
-### configuration
-
-This is the internal default for `/etc/netdata/sensors.conf`
-
-```sh
-# the directory the kernel keeps sensor data
-sensors_sys_dir="${NETDATA_HOST_PREFIX}/sys/devices"
-
-# how deep in the tree to check for sensor data
-sensors_sys_depth=10
-
-# if set to 1, the script will overwrite internal
-# script functions with code generated ones
-# leave to 1, is faster
-sensors_source_update=1
-
-# how frequently to collect sensor data
-# the default is to collect it at every iteration of charts.d
-sensors_update_every=
-
-# array of sensors which are excluded
-# the default is to include all
-sensors_excluded=()
-```
-
----
-
-# squid
-
-The plugin will monitor a squid server.
-
-It will produce 4 charts:
-
-1. **Squid Client Bandwidth** in kbps
-
- * in
- * out
- * hits
-
-2. **Squid Client Requests** in requests/sec
-
- * requests
- * hits
- * errors
-
-3. **Squid Server Bandwidth** in kbps
-
- * in
- * out
-
-4. **Squid Server Requests** in requests/sec
-
- * requests
- * errors
-
-### autoconfig
-
-The plugin will by itself detect squid servers running on
-localhost, on ports 3128 or 8080.
-
-It will attempt to download URLs in the form:
-
-- `cache_object://HOST:PORT/counters`
-- `/squid-internal-mgr/counters`
-
-If any succeeds, it will use this.
-
-### configuration
-
-If you need to configure it by hand, create the file
-`/etc/netdata/squid.conf` with the following variables:
-
-- `squid_host=IP` the IP of the squid host
-- `squid_port=PORT` the port the squid is listening
-- `squid_url="URL"` the URL with the statistics to be fetched from squid
-- `squid_timeout=SECONDS` how much time we should wait for squid to respond
-- `squid_update_every=SECONDS` the frequency of the data collection
-
-Example `/etc/netdata/squid.conf`:
-
-```sh
-squid_host=127.0.0.1
-squid_port=3128
-squid_url="cache_object://127.0.0.1:3128/counters"
-squid_timeout=2
-squid_update_every=5
-```
diff --git a/charts.d/ap.chart.sh b/charts.d/ap.chart.sh
deleted file mode 100644
index ce2eefc9f..000000000
--- a/charts.d/ap.chart.sh
+++ /dev/null
@@ -1,181 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-ap_update_every=
-ap_priority=6900
-
-declare -A ap_devs=()
-
-# _check is called once, to find out if this chart should be enabled or not
-ap_check() {
- require_cmd iw || return 1
-
- local ev=$(run iw dev | awk '
- BEGIN {
- i = "";
- ssid = "";
- ap = 0;
- }
- /^[ \t]+Interface / {
- if( ap == 1 ) {
- print "ap_devs[" i "]=\"" ssid "\""
- }
-
- i = $2;
- ssid = "";
- ap = 0;
- }
- /^[ \t]+ssid / { ssid = $2; }
- /^[ \t]+type AP$/ { ap = 1; }
- END {
- if( ap == 1 ) {
- print "ap_devs[" i "]=\"" ssid "\""
- }
- }
- ')
- eval "${ev}"
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- [ ${#ap_devs[@]} -gt 0 ] && return 0
- error "no devices found in AP mode, with 'iw dev'"
- return 1
-}
-
-# _create is called once, to create the charts
-ap_create() {
- local ssid dev
-
- for dev in "${!ap_devs[@]}"
- do
- ssid="${ap_devs[${dev}]}"
-
- # create the chart with 3 dimensions
- cat <<EOF
-CHART ap_clients.${dev} '' "Connected clients to ${ssid} on ${dev}" "clients" ${dev} ap.clients line $((ap_priority + 1)) $ap_update_every
-DIMENSION clients '' absolute 1 1
-
-CHART ap_bandwidth.${dev} '' "Bandwidth for ${ssid} on ${dev}" "kilobits/s" ${dev} ap.net area $((ap_priority + 2)) $ap_update_every
-DIMENSION received '' incremental 8 1024
-DIMENSION sent '' incremental -8 1024
-
-CHART ap_packets.${dev} '' "Packets for ${ssid} on ${dev}" "packets/s" ${dev} ap.packets line $((ap_priority + 3)) $ap_update_every
-DIMENSION received '' incremental 1 1
-DIMENSION sent '' incremental -1 1
-
-CHART ap_issues.${dev} '' "Transmit Issues for ${ssid} on ${dev}" "issues/s" ${dev} ap.issues line $((ap_priority + 4)) $ap_update_every
-DIMENSION retries 'tx retries' incremental 1 1
-DIMENSION failures 'tx failures' incremental -1 1
-
-CHART ap_signal.${dev} '' "Average Signal for ${ssid} on ${dev}" "dBm" ${dev} ap.signal line $((ap_priority + 5)) $ap_update_every
-DIMENSION signal 'average signal' absolute 1 1000
-
-CHART ap_bitrate.${dev} '' "Bitrate for ${ssid} on ${dev}" "Mbps" ${dev} ap.bitrate line $((ap_priority + 6)) $ap_update_every
-DIMENSION receive '' absolute 1 1000
-DIMENSION transmit '' absolute -1 1000
-DIMENSION expected 'expected throughput' absolute 1 1000
-EOF
- done
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-ap_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- for dev in "${!ap_devs[@]}"
- do
- echo
- echo "DEVICE ${dev}"
- iw ${dev} station dump
- done | awk "
- function zero_data() {
- dev = \"\";
- c = 0;
- rb = 0;
- tb = 0;
- rp = 0;
- tp = 0;
- tr = 0;
- tf = 0;
- tt = 0;
- rt = 0;
- s = 0;
- g = 0;
- e = 0;
- }
- function print_device() {
- if(dev != \"\" && length(dev) > 0) {
- print \"BEGIN ap_clients.\" dev;
- print \"SET clients = \" c;
- print \"END\";
- print \"BEGIN ap_bandwidth.\" dev;
- print \"SET received = \" rb;
- print \"SET sent = \" tb;
- print \"END\";
- print \"BEGIN ap_packets.\" dev;
- print \"SET received = \" rp;
- print \"SET sent = \" tp;
- print \"END\";
- print \"BEGIN ap_issues.\" dev;
- print \"SET retries = \" tr;
- print \"SET failures = \" tf;
- print \"END\";
-
- if( c == 0 ) c = 1;
- print \"BEGIN ap_signal.\" dev;
- print \"SET signal = \" int(s / c);
- print \"END\";
- print \"BEGIN ap_bitrate.\" dev;
- print \"SET receive = \" int(rt / c);
- print \"SET transmit = \" int(tt / c);
- print \"SET expected = \" int(e / c);
- print \"END\";
- }
- zero_data();
- }
- BEGIN {
- zero_data();
- }
- /^DEVICE / {
- print_device();
- dev = \$2;
- }
- /^Station/ { c++; }
- /^[ \\t]+rx bytes:/ { rb += \$3; }
- /^[ \\t]+tx bytes:/ { tb += \$3; }
- /^[ \\t]+rx packets:/ { rp += \$3; }
- /^[ \\t]+tx packets:/ { tp += \$3; }
- /^[ \\t]+tx retries:/ { tr += \$3; }
- /^[ \\t]+tx failed:/ { tf += \$3; }
- /^[ \\t]+signal:/ { x = \$2; s += x * 1000; }
- /^[ \\t]+rx bitrate:/ { x = \$3; rt += x * 1000; }
- /^[ \\t]+tx bitrate:/ { x = \$3; tt += x * 1000; }
- /^[ \\t]+expected throughput:(.*)Mbps/ {
- x=\$3;
- sub(/Mbps/, \"\", x);
- e += x * 1000;
- }
- END {
- print_device();
- }
- "
-
- return 0
-}
-
diff --git a/charts.d/apache.chart.sh b/charts.d/apache.chart.sh
deleted file mode 100644
index a8ac08014..000000000
--- a/charts.d/apache.chart.sh
+++ /dev/null
@@ -1,254 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# the URL to download apache status info
-apache_url="http://127.0.0.1:80/server-status?auto"
-apache_curl_opts=
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-apache_update_every=
-
-apache_priority=60000
-
-# convert apache floating point values
-# to integer using this multiplier
-# this only affects precision - the values
-# will be in the proper units
-apache_decimal_detail=1000000
-
-declare -a apache_response=()
-apache_accesses=0
-apache_kbytes=0
-apache_reqpersec=0
-apache_bytespersec=0
-apache_bytesperreq=0
-apache_busyworkers=0
-apache_idleworkers=0
-apache_connstotal=0
-apache_connsasyncwriting=0
-apache_connsasynckeepalive=0
-apache_connsasyncclosing=0
-
-apache_keys_detected=0
-apache_has_conns=0
-apache_key_accesses=
-apache_key_kbytes=
-apache_key_reqpersec=
-apache_key_bytespersec=
-apache_key_bytesperreq=
-apache_key_busyworkers=
-apache_key_idleworkers=
-apache_key_scoreboard=
-apache_key_connstotal=
-apache_key_connsasyncwriting=
-apache_key_connsasynckeepalive=
-apache_key_connsasyncclosing=
-apache_detect() {
- local i=0
- for x in "${@}"
- do
- case "${x}" in
- 'Total Accesses') apache_key_accesses=$((i + 1)) ;;
- 'Total kBytes') apache_key_kbytes=$((i + 1)) ;;
- 'ReqPerSec') apache_key_reqpersec=$((i + 1)) ;;
- 'BytesPerSec') apache_key_bytespersec=$((i + 1)) ;;
- 'BytesPerReq') apache_key_bytesperreq=$((i + 1)) ;;
- 'BusyWorkers') apache_key_busyworkers=$((i + 1)) ;;
- 'IdleWorkers') apache_key_idleworkers=$((i + 1));;
- 'ConnsTotal') apache_key_connstotal=$((i + 1)) ;;
- 'ConnsAsyncWriting') apache_key_connsasyncwriting=$((i + 1)) ;;
- 'ConnsAsyncKeepAlive') apache_key_connsasynckeepalive=$((i + 1)) ;;
- 'ConnsAsyncClosing') apache_key_connsasyncclosing=$((i + 1)) ;;
- 'Scoreboard') apache_key_scoreboard=$((i)) ;;
- esac
-
- i=$((i + 1))
- done
-
- # we will not check of the Conns*
- # keys, since these are apache 2.4 specific
- [ -z "${apache_key_accesses}" ] && error "missing 'Total Accesses' from apache server: ${*}" && return 1
- [ -z "${apache_key_kbytes}" ] && error "missing 'Total kBytes' from apache server: ${*}" && return 1
- [ -z "${apache_key_reqpersec}" ] && error "missing 'ReqPerSec' from apache server: ${*}" && return 1
- [ -z "${apache_key_bytespersec}" ] && error "missing 'BytesPerSec' from apache server: ${*}" && return 1
- [ -z "${apache_key_bytesperreq}" ] && error "missing 'BytesPerReq' from apache server: ${*}" && return 1
- [ -z "${apache_key_busyworkers}" ] && error "missing 'BusyWorkers' from apache server: ${*}" && return 1
- [ -z "${apache_key_idleworkers}" ] && error "missing 'IdleWorkers' from apache server: ${*}" && return 1
- [ -z "${apache_key_scoreboard}" ] && error "missing 'Scoreboard' from apache server: ${*}" && return 1
-
- if [ ! -z "${apache_key_connstotal}" \
- -a ! -z "${apache_key_connsasyncwriting}" \
- -a ! -z "${apache_key_connsasynckeepalive}" \
- -a ! -z "${apache_key_connsasyncclosing}" \
- ]
- then
- apache_has_conns=1
- else
- apache_has_conns=0
- fi
-
- return 0
-}
-
-apache_get() {
- local oIFS="${IFS}" ret
- IFS=$':\n' apache_response=($(run curl -Ss ${apache_curl_opts} "${apache_url}"))
- ret=$?
- IFS="${oIFS}"
-
- [ $ret -ne 0 -o "${#apache_response[@]}" -eq 0 ] && return 1
-
- # the last line on the apache output is "Scoreboard"
- # we use this label to detect that the output has a new word count
- if [ ${apache_keys_detected} -eq 0 -o "${apache_response[${apache_key_scoreboard}]}" != "Scoreboard" ]
- then
- apache_detect "${apache_response[@]}" || return 1
- apache_keys_detected=1
- fi
-
- apache_accesses="${apache_response[${apache_key_accesses}]}"
- apache_kbytes="${apache_response[${apache_key_kbytes}]}"
-
- float2int "${apache_response[${apache_key_reqpersec}]}" ${apache_decimal_detail}
- apache_reqpersec=${FLOAT2INT_RESULT}
-
- float2int "${apache_response[${apache_key_bytespersec}]}" ${apache_decimal_detail}
- apache_bytespersec=${FLOAT2INT_RESULT}
-
- float2int "${apache_response[${apache_key_bytesperreq}]}" ${apache_decimal_detail}
- apache_bytesperreq=${FLOAT2INT_RESULT}
-
- apache_busyworkers="${apache_response[${apache_key_busyworkers}]}"
- apache_idleworkers="${apache_response[${apache_key_idleworkers}]}"
-
- if [ -z "${apache_accesses}" \
- -o -z "${apache_kbytes}" \
- -o -z "${apache_reqpersec}" \
- -o -z "${apache_bytespersec}" \
- -o -z "${apache_bytesperreq}" \
- -o -z "${apache_busyworkers}" \
- -o -z "${apache_idleworkers}" \
- ]
- then
- error "empty values got from apache server: ${apache_response[*]}"
- return 1
- fi
-
- if [ ${apache_has_conns} -eq 1 ]
- then
- apache_connstotal="${apache_response[${apache_key_connstotal}]}"
- apache_connsasyncwriting="${apache_response[${apache_key_connsasyncwriting}]}"
- apache_connsasynckeepalive="${apache_response[${apache_key_connsasynckeepalive}]}"
- apache_connsasyncclosing="${apache_response[${apache_key_connsasyncclosing}]}"
- fi
-
- return 0
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-apache_check() {
-
- apache_get
- if [ $? -ne 0 ]
- then
- error "cannot find stub_status on URL '${apache_url}'. Please set apache_url='http://apache.server:80/server-status?auto' in $confd/apache.conf"
- return 1
- fi
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- return 0
-}
-
-# _create is called once, to create the charts
-apache_create() {
- cat <<EOF
-CHART apache_local.bytesperreq '' "apache Lifetime Avg. Response Size" "bytes/request" statistics apache.bytesperreq area $((apache_priority + 8)) $apache_update_every
-DIMENSION size '' absolute 1 ${apache_decimal_detail}
-CHART apache_local.workers '' "apache Workers" "workers" workers apache.workers stacked $((apache_priority + 5)) $apache_update_every
-DIMENSION idle '' absolute 1 1
-DIMENSION busy '' absolute 1 1
-CHART apache_local.reqpersec '' "apache Lifetime Avg. Requests/s" "requests/s" statistics apache.reqpersec line $((apache_priority + 6)) $apache_update_every
-DIMENSION requests '' absolute 1 ${apache_decimal_detail}
-CHART apache_local.bytespersec '' "apache Lifetime Avg. Bandwidth/s" "kilobits/s" statistics apache.bytespersec area $((apache_priority + 7)) $apache_update_every
-DIMENSION sent '' absolute 8 $((apache_decimal_detail * 1000))
-CHART apache_local.requests '' "apache Requests" "requests/s" requests apache.requests line $((apache_priority + 1)) $apache_update_every
-DIMENSION requests '' incremental 1 1
-CHART apache_local.net '' "apache Bandwidth" "kilobits/s" bandwidth apache.net area $((apache_priority + 3)) $apache_update_every
-DIMENSION sent '' incremental 8 1
-EOF
-
- if [ ${apache_has_conns} -eq 1 ]
- then
- cat <<EOF2
-CHART apache_local.connections '' "apache Connections" "connections" connections apache.connections line $((apache_priority + 2)) $apache_update_every
-DIMENSION connections '' absolute 1 1
-CHART apache_local.conns_async '' "apache Async Connections" "connections" connections apache.conns_async stacked $((apache_priority + 4)) $apache_update_every
-DIMENSION keepalive '' absolute 1 1
-DIMENSION closing '' absolute 1 1
-DIMENSION writing '' absolute 1 1
-EOF2
- fi
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-apache_update() {
- local reqs net
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- apache_get || return 1
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN apache_local.requests $1
-SET requests = $((apache_accesses))
-END
-BEGIN apache_local.net $1
-SET sent = $((apache_kbytes))
-END
-BEGIN apache_local.reqpersec $1
-SET requests = $((apache_reqpersec))
-END
-BEGIN apache_local.bytespersec $1
-SET sent = $((apache_bytespersec))
-END
-BEGIN apache_local.bytesperreq $1
-SET size = $((apache_bytesperreq))
-END
-BEGIN apache_local.workers $1
-SET idle = $((apache_idleworkers))
-SET busy = $((apache_busyworkers))
-END
-VALUESEOF
-
- if [ ${apache_has_conns} -eq 1 ]
- then
- cat <<VALUESEOF2
-BEGIN apache_local.connections $1
-SET connections = $((apache_connstotal))
-END
-BEGIN apache_local.conns_async $1
-SET keepalive = $((apache_connsasynckeepalive))
-SET closing = $((apache_connsasyncclosing))
-SET writing = $((apache_connsasyncwriting))
-END
-VALUESEOF2
- fi
-
- return 0
-}
diff --git a/charts.d/apcupsd.chart.sh b/charts.d/apcupsd.chart.sh
deleted file mode 100644
index 9878fd36c..000000000
--- a/charts.d/apcupsd.chart.sh
+++ /dev/null
@@ -1,198 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-apcupsd_ip=
-apcupsd_port=
-
-declare -A apcupsd_sources=(
- ["local"]="127.0.0.1:3551"
-)
-
-# how frequently to collect UPS data
-apcupsd_update_every=10
-
-apcupsd_timeout=3
-
-# the priority of apcupsd related to other charts
-apcupsd_priority=90000
-
-apcupsd_get() {
- run -t $apcupsd_timeout apcaccess status "$1"
-}
-
-apcupsd_check() {
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- require_cmd apcaccess || return 1
-
- # backwards compatibility
- if [ "${apcupsd_ip}:${apcupsd_port}" != ":" ]
- then
- apcupsd_sources["local"]="${apcupsd_ip}:${apcupsd_port}"
- fi
-
- local host working=0 failed=0
- for host in "${!apcupsd_sources[@]}"
- do
- run apcupsd_get "${apcupsd_sources[${host}]}" >/dev/null
- if [ $? -ne 0 ]
- then
- error "cannot get information for apcupsd server ${host} on ${apcupsd_sources[${host}]}."
- failed=$((failed + 1))
- elif [ $(apcupsd_get "${apcupsd_sources[${host}]}" | awk '/^STATUS.*/{ print $3 }') != "ONLINE" ]
- then
- error "APC UPS ${host} on ${apcupsd_sources[${host}]} is not online."
- failed=$((failed + 1))
- else
- working=$((working + 1))
- fi
- done
-
- if [ ${working} -eq 0 ]
- then
- error "No APC UPSes found available."
- return 1
- fi
-
- return 0
-}
-
-apcupsd_create() {
- local host src
- for host in "${!apcupsd_sources[@]}"
- do
- src=${apcupsd_sources[${host}]}
-
- # create the charts
- cat <<EOF
-CHART apcupsd_${host}.charge '' "UPS Charge for ${host} on ${src}" "percentage" ups apcupsd.charge area $((apcupsd_priority + 1)) $apcupsd_update_every
-DIMENSION battery_charge charge absolute 1 100
-
-CHART apcupsd_${host}.battery_voltage '' "UPS Battery Voltage for ${host} on ${src}" "Volts" ups apcupsd.battery.voltage line $((apcupsd_priority + 3)) $apcupsd_update_every
-DIMENSION battery_voltage voltage absolute 1 100
-DIMENSION battery_voltage_nominal nominal absolute 1 100
-
-CHART apcupsd_${host}.input_voltage '' "UPS Input Voltage for ${host} on ${src}" "Volts" input apcupsd.input.voltage line $((apcupsd_priority + 4)) $apcupsd_update_every
-DIMENSION input_voltage voltage absolute 1 100
-DIMENSION input_voltage_min min absolute 1 100
-DIMENSION input_voltage_max max absolute 1 100
-
-CHART apcupsd_${host}.input_frequency '' "UPS Input Frequency for ${host} on ${src}" "Hz" input apcupsd.input.frequency line $((apcupsd_priority + 5)) $apcupsd_update_every
-DIMENSION input_frequency frequency absolute 1 100
-
-CHART apcupsd_${host}.output_voltage '' "UPS Output Voltage for ${host} on ${src}" "Volts" output apcupsd.output.voltage line $((apcupsd_priority + 6)) $apcupsd_update_every
-DIMENSION output_voltage voltage absolute 1 100
-DIMENSION output_voltage_nominal nominal absolute 1 100
-
-CHART apcupsd_${host}.load '' "UPS Load for ${host} on ${src}" "percentage" ups apcupsd.load area $((apcupsd_priority)) $apcupsd_update_every
-DIMENSION load load absolute 1 100
-
-CHART apcupsd_${host}.temp '' "UPS Temperature for ${host} on ${src}" "Celsius" ups apcupsd.temperature line $((apcupsd_priority + 7)) $apcupsd_update_every
-DIMENSION temp temp absolute 1 100
-
-CHART apcupsd_${host}.time '' "UPS Time Remaining for ${host} on ${src}" "Minutes" ups apcupsd.time area $((apcupsd_priority + 2)) $apcupsd_update_every
-DIMENSION time time absolute 1 100
-
-EOF
- done
- return 0
-}
-
-
-apcupsd_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- local host working=0 failed=0
- for host in "${!apcupsd_sources[@]}"
- do
- apcupsd_get "${apcupsd_sources[${host}]}" | awk "
-
-BEGIN {
- battery_charge = 0;
- battery_voltage = 0;
- battery_voltage_nominal = 0;
- input_voltage = 0;
- input_voltage_min = 0;
- input_voltage_max = 0;
- input_frequency = 0;
- output_voltage = 0;
- output_voltage_nominal = 0;
- load = 0;
- temp = 0;
- time = 0;
-}
-/^BCHARGE.*/ { battery_charge = \$3 * 100 };
-/^BATTV.*/ { battery_voltage = \$3 * 100 };
-/^NOMBATTV.*/ { battery_voltage_nominal = \$3 * 100 };
-/^LINEV.*/ { input_voltage = \$3 * 100 };
-/^MINLINEV.*/ { input_voltage_min = \$3 * 100 };
-/^MAXLINEV.*/ { input_voltage_max = \$3 * 100 };
-/^LINEFREQ.*/ { input_frequency = \$3 * 100 };
-/^OUTPUTV.*/ { output_voltage = \$3 * 100 };
-/^NOMOUTV.*/ { output_voltage_nominal = \$3 * 100 };
-/^LOADPCT.*/ { load = \$3 * 100 };
-/^ITEMP.*/ { temp = \$3 * 100 };
-/^TIMELEFT.*/ { time = \$3 * 100 };
-END {
- print \"BEGIN apcupsd_${host}.charge $1\";
- print \"SET battery_charge = \" battery_charge;
- print \"END\"
-
- print \"BEGIN apcupsd_${host}.battery_voltage $1\";
- print \"SET battery_voltage = \" battery_voltage;
- print \"SET battery_voltage_nominal = \" battery_voltage_nominal;
- print \"END\"
-
- print \"BEGIN apcupsd_${host}.input_voltage $1\";
- print \"SET input_voltage = \" input_voltage;
- print \"SET input_voltage_min = \" input_voltage_min;
- print \"SET input_voltage_max = \" input_voltage_max;
- print \"END\"
-
- print \"BEGIN apcupsd_${host}.input_frequency $1\";
- print \"SET input_frequency = \" input_frequency;
- print \"END\"
-
- print \"BEGIN apcupsd_${host}.output_voltage $1\";
- print \"SET output_voltage = \" output_voltage;
- print \"SET output_voltage_nominal = \" output_voltage_nominal;
- print \"END\"
-
- print \"BEGIN apcupsd_${host}.load $1\";
- print \"SET load = \" load;
- print \"END\"
-
- print \"BEGIN apcupsd_${host}.temp $1\";
- print \"SET temp = \" temp;
- print \"END\"
-
- print \"BEGIN apcupsd_${host}.time $1\";
- print \"SET time = \" time;
- print \"END\"
-}"
- if [ $? -ne 0 ]
- then
- failed=$((failed + 1))
- error "failed to get values for APC UPS ${host} on ${apcupsd_sources[${host}]}" && return 1
- else
- working=$((working + 1))
- fi
- done
-
- [ $working -eq 0 ] && error "failed to get values from all APC UPSes" && return 1
-
- return 0
-}
diff --git a/charts.d/cpu_apps.chart.sh b/charts.d/cpu_apps.chart.sh
deleted file mode 100644
index 8e075831a..000000000
--- a/charts.d/cpu_apps.chart.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-# THIS PLUGIN IS OBSOLETE
-# USE apps.plugin INSTEAD
-
-# a space separated list of command to monitor
-cpu_apps_apps=
-
-# these are required for computing memory in bytes and cpu in seconds
-#cpu_apps_pagesize="`getconf PAGESIZE`"
-cpu_apps_clockticks="$(getconf CLK_TCK)"
-
-cpu_apps_update_every=60
-
-cpu_apps_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- if [ -z "$cpu_apps_apps" ]
- then
- error "manual configuration required: please set cpu_apps_apps='command1 command2 ...' in $confd/cpu_apps_apps.conf"
- return 1
- fi
- return 0
-}
-
-cpu_apps_bc_finalze=
-
-cpu_apps_create() {
-
- echo "CHART chartsd_apps.cpu '' 'Apps CPU' 'milliseconds / $cpu_apps_update_every sec' apps apps stacked 20001 $cpu_apps_update_every"
-
- local x=
- for x in $cpu_apps_apps
- do
- echo "DIMENSION $x $x incremental 1000 $cpu_apps_clockticks"
-
- # this string is needed later in the update() function
- # to finalize the instructions for the bc command
- cpu_apps_bc_finalze="$cpu_apps_bc_finalze \"SET $x = \"; $x;"
- done
- return 0
-}
-
-cpu_apps_update() {
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- echo "BEGIN chartsd_apps.cpu"
- ps -o pid,comm -C "$cpu_apps_apps" |\
- grep -v "COMMAND" |\
- (
- while read pid name
- do
- echo "$name+=`cat /proc/$pid/stat | cut -d ' ' -f 14-15`"
- done
- ) |\
- ( sed -e "s/ \+/ /g" -e "s/ /+/g";
- echo "$cpu_apps_bc_finalze"
- ) | bc
- echo "END"
-
- return 0
-}
diff --git a/charts.d/cpufreq.chart.sh b/charts.d/cpufreq.chart.sh
deleted file mode 100644
index 1c41c38f2..000000000
--- a/charts.d/cpufreq.chart.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# if this chart is called X.chart.sh, then all functions and global variables
-# must start with X_
-
-cpufreq_sys_dir="${NETDATA_HOST_PREFIX}/sys/devices"
-cpufreq_sys_depth=10
-cpufreq_source_update=1
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-cpufreq_update_every=
-cpufreq_priority=10000
-
-cpufreq_find_all_files() {
- find $1 -maxdepth $cpufreq_sys_depth -name scaling_cur_freq 2>/dev/null
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-cpufreq_check() {
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- [ -z "$( cpufreq_find_all_files $cpufreq_sys_dir )" ] && return 1
- return 0
-}
-
-# _create is called once, to create the charts
-cpufreq_create() {
- local dir= file= id= i=
-
- # we create a script with the source of the
- # cpufreq_update() function
- # - the highest speed we can achieve -
- [ $cpufreq_source_update -eq 1 ] && echo >$TMP_DIR/cpufreq.sh "cpufreq_update() {"
-
- echo "CHART cpu.cpufreq '' 'CPU Clock' 'MHz' 'cpufreq' '' line $((cpufreq_priority + 1)) $cpufreq_update_every"
- echo >>$TMP_DIR/cpufreq.sh "echo \"BEGIN cpu.cpufreq \$1\""
-
- i=0
- for file in $( cpufreq_find_all_files $cpufreq_sys_dir | sort -u )
- do
- i=$(( i + 1 ))
- dir=$( dirname $file )
- cpu=
-
- [ -f $dir/affected_cpus ] && cpu=$( cat $dir/affected_cpus )
- [ -z "$cpu" ] && cpu="$i.a"
-
- id="$( fixid "cpu$cpu" )"
-
- debug "file='$file', dir='$dir', cpu='$cpu', id='$id'"
-
- echo "DIMENSION $id '$id' absolute 1 1000"
- echo >>$TMP_DIR/cpufreq.sh "echo \"SET $id = \"\$(< $file )"
- done
- echo >>$TMP_DIR/cpufreq.sh "echo END"
-
- [ $cpufreq_source_update -eq 1 ] && echo >>$TMP_DIR/cpufreq.sh "}"
-
- # ok, load the function cpufreq_update() we created
- [ $cpufreq_source_update -eq 1 ] && . $TMP_DIR/cpufreq.sh
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-cpufreq_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- [ $cpufreq_source_update -eq 0 ] && . $TMP_DIR/cpufreq.sh $1
-
- return 0
-}
-
diff --git a/charts.d/example.chart.sh b/charts.d/example.chart.sh
deleted file mode 100644
index ffc98712f..000000000
--- a/charts.d/example.chart.sh
+++ /dev/null
@@ -1,119 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# if this chart is called X.chart.sh, then all functions and global variables
-# must start with X_
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-example_update_every=
-
-# the priority is used to sort the charts on the dashboard
-# 1 = the first chart
-example_priority=150000
-
-# to enable this chart, you have to set this to 12345
-# (just a demonstration for something that needs to be checked)
-example_magic_number=
-
-# global variables to store our collected data
-# remember: they need to start with the module name example_
-example_value1=
-example_value2=
-example_value3=
-example_value4=
-example_last=0
-example_count=0
-
-example_get() {
- # do all the work to collect / calculate the values
- # for each dimension
- #
- # Remember:
- # 1. KEEP IT SIMPLE AND SHORT
- # 2. AVOID FORKS (avoid piping commands)
- # 3. AVOID CALLING TOO MANY EXTERNAL PROGRAMS
- # 4. USE LOCAL VARIABLES (global variables may overlap with other modules)
-
- example_value1=$RANDOM
- example_value2=$RANDOM
- example_value3=$RANDOM
- example_value4=$((8192 + (RANDOM * 16383 / 32767) ))
-
- if [ $example_count -gt 0 ]
- then
- example_count=$((example_count - 1))
-
- [ $example_last -gt 16383 ] && example_value4=$((example_last + (RANDOM * ( (32767 - example_last) / 2) / 32767)))
- [ $example_last -le 16383 ] && example_value4=$((example_last - (RANDOM * (example_last / 2) / 32767)))
- else
- example_count=$((1 + (RANDOM * 5 / 32767) ))
-
- [ $example_last -gt 16383 -a $example_value4 -gt 16383 ] && example_value4=$((example_value4 - 16383))
- [ $example_last -le 16383 -a $example_value4 -lt 16383 ] && example_value4=$((example_value4 + 16383))
- fi
- example_last=$example_value4
-
- # this should return:
- # - 0 to send the data to netdata
- # - 1 to report a failure to collect the data
-
- return 0
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-example_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- # check something
- [ "${example_magic_number}" != "12345" ] && error "manual configuration required: you have to set example_magic_number=$example_magic_number in example.conf to start example chart." && return 1
-
- # check that we can collect data
- example_get || return 1
-
- return 0
-}
-
-# _create is called once, to create the charts
-example_create() {
- # create the chart with 3 dimensions
- cat <<EOF
-CHART example.random '' "Random Numbers Stacked Chart" "% of random numbers" random random stacked $((example_priority)) $example_update_every
-DIMENSION random1 '' percentage-of-absolute-row 1 1
-DIMENSION random2 '' percentage-of-absolute-row 1 1
-DIMENSION random3 '' percentage-of-absolute-row 1 1
-CHART example.random2 '' "A random number" "random number" random random area $((example_priority + 1)) $example_update_every
-DIMENSION random '' absolute 1 1
-EOF
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-example_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- example_get || return 1
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN example.random $1
-SET random1 = $example_value1
-SET random2 = $example_value2
-SET random3 = $example_value3
-END
-BEGIN example.random2 $1
-SET random = $example_value4
-END
-VALUESEOF
-
- return 0
-}
diff --git a/charts.d/exim.chart.sh b/charts.d/exim.chart.sh
deleted file mode 100644
index 4c70f2c19..000000000
--- a/charts.d/exim.chart.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-# Contributed by @jsveiga with PR #480
-
-# the exim command to run
-exim_command=
-
-# how frequently to collect queue size
-exim_update_every=5
-
-exim_priority=60000
-
-exim_check() {
- if [ -z "${exim_command}" ]
- then
- require_cmd exim || return 1
- exim_command="${EXIM_CMD}"
- fi
-
- if [ $(${exim_command} -bpc 2>&1 | grep -c denied) -ne 0 ]
- then
- error "permission denied - please set 'queue_list_requires_admin = false' in your exim options file"
- return 1
- fi
-
- return 0
-}
-
-exim_create() {
- cat <<EOF
-CHART exim_local.qemails '' "Exim Queue Emails" "emails" queue exim.queued.emails line $((exim_priority + 1)) $exim_update_every
-DIMENSION emails '' absolute 1 1
-EOF
- return 0
-}
-
-exim_update() {
- echo "BEGIN exim_local.qemails $1"
- echo "SET emails = " $(run ${exim_command} -bpc)
- echo "END"
- return 0
-}
diff --git a/charts.d/hddtemp.chart.sh b/charts.d/hddtemp.chart.sh
deleted file mode 100644
index 3aada1751..000000000
--- a/charts.d/hddtemp.chart.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-# contributed by @paulfantom with PR #511
-
-# if this chart is called X.chart.sh, then all functions and global variables
-# must start with X_
-hddtemp_host="localhost"
-hddtemp_port="7634"
-declare -A hddtemp_disks=()
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-hddtemp_update_every=3
-hddtemp_priority=90000
-
-# _check is called once, to find out if this chart should be enabled or not
-hddtemp_check() {
- require_cmd nc || return 1
- run nc $hddtemp_host $hddtemp_port && return 0 || return 1
-}
-
-# _create is called once, to create the charts
-hddtemp_create() {
- if [ ${#hddtemp_disks[@]} -eq 0 ]; then
- local all
- all=$(nc $hddtemp_host $hddtemp_port )
- unset hddtemp_disks
- hddtemp_disks=( `grep -Po '/dev/[^|]+' <<< "$all" | cut -c 6-` )
- fi
-# local disk_names
-# disk_names=(`sed -e 's/||/\n/g;s/^|//' <<< "$all" | cut -d '|' -f2 | tr ' ' '_'`)
-
- echo "CHART hddtemp.temperature 'disks_temp' 'temperature' 'Celsius' 'Disks temperature' 'hddtemp.temp' line $((hddtemp_priority)) $hddtemp_update_every"
- for i in `seq 0 $((${#hddtemp_disks[@]}-1))`; do
-# echo "DIMENSION ${hddtemp_disks[i]} ${disk_names[i]} absolute 1 1"
- echo "DIMENSION ${hddtemp_disks[$i]} '' absolute 1 1"
- done
- return 0
-}
-
-# _update is called continuously, to collect the values
-hddtemp_last=0
-hddtemp_count=0
-hddtemp_update() {
-# local all=( `nc $hddtemp_host $hddtemp_port | sed -e 's/||/\n/g;s/^|//' | cut -d '|' -f3` )
-# local all=( `nc $hddtemp_host $hddtemp_port | awk 'BEGIN { FS="|" };{i=4; while (i <= NF) {print $i+0;i+=5;};}'` )
- OLD_IFS=$IFS
- set -f
- IFS="|" all=( $(nc $hddtemp_host $hddtemp_port 2>/dev/null) )
- set +f
- IFS=$OLD_IFS
-
- # check if there is some data
- if [ -z "${all[3]}" ]; then
- return 1
- fi
-
- # write the result of the work.
- echo "BEGIN hddtemp.temperature $1"
- end=${#hddtemp_disks[@]}
- for ((i=0; i<end; i++)); do
- # temperature - this will turn SLP to zero
- t=$(( ${all[ $((i * 5 + 3)) ]} ))
- echo "SET ${hddtemp_disks[$i]} = $t"
- done
- echo "END"
-
- return 0
-}
diff --git a/charts.d/libreswan.chart.sh b/charts.d/libreswan.chart.sh
deleted file mode 100644
index 30632e9ce..000000000
--- a/charts.d/libreswan.chart.sh
+++ /dev/null
@@ -1,173 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2018 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-libreswan_update_every=1
-
-# the priority is used to sort the charts on the dashboard
-# 1 = the first chart
-libreswan_priority=90000
-
-# set to 1, to run ipsec with sudo
-libreswan_sudo=1
-
-# global variables to store our collected data
-
-# [TUNNELID] = TUNNELNAME
-# here we track the *latest* established tunnels
-# as detected by: ipsec whack --status
-declare -A libreswan_connected_tunnels=()
-
-# [TUNNELID] = VALUE
-# here we track values of all established tunnels (not only the latest)
-# as detected by: ipsec whack --trafficstatus
-declare -A libreswan_traffic_in=()
-declare -A libreswan_traffic_out=()
-declare -A libreswan_established_add_time=()
-
-# [TUNNELNAME] = CHARTID
-# here we remember CHARTIDs of all tunnels
-# we need this to avoid converting tunnel names to chart IDs on every iteration
-declare -A libreswan_tunnel_charts=()
-
-# run the ipsec command
-libreswan_ipsec() {
- if [ ${libreswan_sudo} -ne 0 ]
- then
- sudo -n "${IPSEC_CMD}" "${@}"
- return $?
- else
- "${IPSEC_CMD}" "${@}"
- return $?
- fi
-}
-
-# fetch latest values - fill the arrays
-libreswan_get() {
- # do all the work to collect / calculate the values
- # for each dimension
-
- # empty the variables
- libreswan_traffic_in=()
- libreswan_traffic_out=()
- libreswan_established_add_time=()
- libreswan_connected_tunnels=()
-
- # convert the ipsec command output to a shell script
- # and source it to get the values
- source <(
- {
- libreswan_ipsec whack --status;
- libreswan_ipsec whack --trafficstatus;
- } | sed -n \
- -e "s|[0-9]\+ #\([0-9]\+\): \"\(.*\)\".*IPsec SA established.*newest IPSEC.*|libreswan_connected_tunnels[\"\1\"]=\"\2\"|p" \
- -e "s|[0-9]\+ #\([0-9]\+\): \"\(.*\)\",.* add_time=\([0-9]\+\),.* inBytes=\([0-9]\+\),.* outBytes=\([0-9]\+\).*|libreswan_traffic_in[\"\1\"]=\"\4\"; libreswan_traffic_out[\"\1\"]=\"\5\"; libreswan_established_add_time[\"\1\"]=\"\3\";|p"
- ) || return 1
-
- # check we got some data
- [ ${#libreswan_connected_tunnels[@]} -eq 0 ] && return 1
-
- return 0
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-libreswan_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- require_cmd ipsec || return 1
-
- # make sure it is libreswan
- if [ -z "$(ipsec --version | grep -i libreswan)" ]
- then
- error "ipsec command is not Libreswan. Disabling Libreswan plugin."
- return 1
- fi
-
- # check that we can collect data
- libreswan_get || return 1
-
- return 0
-}
-
-# create the charts for an ipsec tunnel
-libreswan_create_one() {
- local n="${1}" name
-
- name="${libreswan_connected_tunnels[${n}]}"
-
- [ ! -z "${libreswan_tunnel_charts[${name}]}" ] && return 0
-
- libreswan_tunnel_charts[${name}]="$(fixid "${name}")"
-
- cat <<EOF
-CHART libreswan.${libreswan_tunnel_charts[${name}]}_net '${name}_net' "LibreSWAN Tunnel ${name} Traffic" "kilobits/s" "${name}" libreswan.net area $((libreswan_priority)) $libreswan_update_every
-DIMENSION in '' incremental 8 1000
-DIMENSION out '' incremental -8 1000
-CHART libreswan.${libreswan_tunnel_charts[${name}]}_uptime '${name}_uptime' "LibreSWAN Tunnel ${name} Uptime" "seconds" "${name}" libreswan.uptime line $((libreswan_priority + 1)) $libreswan_update_every
-DIMENSION uptime '' absolute 1 1
-EOF
-
- return 0
-
-}
-
-# _create is called once, to create the charts
-libreswan_create() {
- local n
- for n in "${!libreswan_connected_tunnels[@]}"
- do
- libreswan_create_one "${n}"
- done
- return 0
-}
-
-libreswan_now=$(date +%s)
-
-# send the values to netdata for an ipsec tunnel
-libreswan_update_one() {
- local n="${1}" microseconds="${2}" name id uptime
-
- name="${libreswan_connected_tunnels[${n}]}"
- id="${libreswan_tunnel_charts[${name}]}"
-
- [ -z "${id}" ] && libreswan_create_one "${name}"
-
- uptime=$(( ${libreswan_now} - ${libreswan_established_add_time[${n}]} ))
- [ ${uptime} -lt 0 ] && uptime=0
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN libreswan.${id}_net ${microseconds}
-SET in = ${libreswan_traffic_in[${n}]}
-SET out = ${libreswan_traffic_out[${n}]}
-END
-BEGIN libreswan.${id}_uptime ${microseconds}
-SET uptime = ${uptime}
-END
-VALUESEOF
-}
-
-# _update is called continiously, to collect the values
-libreswan_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- libreswan_get || return 1
- libreswan_now=$(date +%s)
-
- local n
- for n in "${!libreswan_connected_tunnels[@]}"
- do
- libreswan_update_one "${n}" "${@}"
- done
-
- return 0
-}
diff --git a/charts.d/load_average.chart.sh b/charts.d/load_average.chart.sh
deleted file mode 100644
index 70d3aec7a..000000000
--- a/charts.d/load_average.chart.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-load_average_update_every=5
-load_priority=100
-
-# this is an example charts.d collector
-# it is disabled by default.
-# there is no point to enable it, since netdata already
-# collects this information using its internal plugins.
-load_average_enabled=0
-
-load_average_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- if [ ${load_average_update_every} -lt 5 ]
- then
- # there is no meaning for shorter than 5 seconds
- # the kernel changes this value every 5 seconds
- load_average_update_every=5
- fi
-
- [ ${load_average_enabled} -eq 0 ] && return 1
- return 0
-}
-
-load_average_create() {
- # create a chart with 3 dimensions
-cat <<EOF
-CHART system.load '' "System Load Average" "load" load system.load line $((load_priority + 1)) $load_average_update_every
-DIMENSION load1 '1 min' absolute 1 100
-DIMENSION load5 '5 mins' absolute 1 100
-DIMENSION load15 '15 mins' absolute 1 100
-EOF
-
- return 0
-}
-
-load_average_update() {
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- # here we parse the system average load
- # it is decimal (with 2 decimal digits), so we remove the dot and
- # at the definition we have divisor = 100, to have the graph show the right value
- loadavg="`cat /proc/loadavg | sed -e "s/\.//g"`"
- load1=`echo $loadavg | cut -d ' ' -f 1`
- load5=`echo $loadavg | cut -d ' ' -f 2`
- load15=`echo $loadavg | cut -d ' ' -f 3`
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN system.load
-SET load1 = $load1
-SET load5 = $load5
-SET load15 = $load15
-END
-VALUESEOF
-
- return 0
-}
-
diff --git a/charts.d/mem_apps.chart.sh b/charts.d/mem_apps.chart.sh
deleted file mode 100644
index 3bc65fe24..000000000
--- a/charts.d/mem_apps.chart.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-mem_apps_apps=
-
-# these are required for computing memory in bytes and cpu in seconds
-#mem_apps_pagesize="`getconf PAGESIZE`"
-#mem_apps_clockticks="`getconf CLK_TCK`"
-
-mem_apps_update_every=
-
-mem_apps_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- if [ -z "$mem_apps_apps" ]
- then
- error "manual configuration required: please set mem_apps_apps='command1 command2 ...' in $confd/mem_apps_apps.conf"
- return 1
- fi
- return 0
-}
-
-mem_apps_bc_finalze=
-
-mem_apps_create() {
-
- echo "CHART chartsd_apps.mem '' 'Apps Memory' MB apps apps.mem stacked 20000 $mem_apps_update_every"
-
- local x=
- for x in $mem_apps_apps
- do
- echo "DIMENSION $x $x absolute 1 1024"
-
- # this string is needed later in the update() function
- # to finalize the instructions for the bc command
- mem_apps_bc_finalze="$mem_apps_bc_finalze \"SET $x = \"; $x;"
- done
- return 0
-}
-
-mem_apps_update() {
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- echo "BEGIN chartsd_apps.mem"
- ps -o comm,rss -C "$mem_apps_apps" |\
- grep -v "^COMMAND" |\
- ( sed -e "s/ \+/ /g" -e "s/ /+=/g";
- echo "$mem_apps_bc_finalze"
- ) | bc
- echo "END"
-
- return 0
-}
diff --git a/charts.d/mysql.chart.sh b/charts.d/mysql.chart.sh
deleted file mode 100644
index 1363d01f4..000000000
--- a/charts.d/mysql.chart.sh
+++ /dev/null
@@ -1,522 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html
-#
-# https://dev.mysql.com/doc/refman/5.1/en/show-status.html
-# SHOW STATUS provides server status information (see Section 5.1.6, “Server Status Variables”).
-# This statement does not require any privilege.
-# It requires only the ability to connect to the server.
-
-mysql_update_every=2
-mysql_priority=60000
-
-declare -A mysql_cmds=() mysql_opts=() mysql_ids=() mysql_data=()
-
-mysql_get() {
- local arr
- local oIFS="${IFS}"
- mysql_data=()
- IFS=$'\t'$'\n'
- #arr=($(run "${@}" -e "SHOW GLOBAL STATUS WHERE value REGEXP '^[0-9]';" | egrep "^(Bytes|Slow_|Que|Handl|Table|Selec|Sort_|Creat|Conne|Abort|Binlo|Threa|Innod|Qcach|Key_|Open)" ))
- #arr=($(run "${@}" -N -e "SHOW GLOBAL STATUS;" | egrep "^(Bytes|Slow_|Que|Handl|Table|Selec|Sort_|Creat|Conne|Abort|Binlo|Threa|Innod|Qcach|Key_|Open)[^ ]+\s[0-9]" ))
- arr=($(run "${@}" -N -e "SHOW GLOBAL STATUS;" | egrep "^(Bytes|Slow_|Que|Handl|Table|Selec|Sort_|Creat|Conne|Abort|Binlo|Threa|Innod|Qcach|Key_|Open)[^[:space:]]+[[:space:]]+[0-9]+" ))
- IFS="${oIFS}"
-
- [ "${#arr[@]}" -lt 3 ] && return 1
- local end=${#arr[@]}
- for ((i=2;i<end;i+=2)); do
- mysql_data["${arr[$i]}"]=${arr[$i+1]}
- done
-
- [ -z "${mysql_data[Connections]}" ] && return 1
-
- mysql_data[Thread_cache_misses]=0
- [ $(( mysql_data[Connections] + 1 - 1 )) -gt 0 ] && mysql_data[Thread_cache_misses]=$(( mysql_data[Threads_created] * 10000 / mysql_data[Connections] ))
-
- return 0
-}
-
-mysql_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- local x m mysql_cmd tryroot=0 unconfigured=0
-
- if [ "${1}" = "tryroot" ]
- then
- tryroot=1
- shift
- fi
-
- [ -z "${mysql_cmd}" ] && mysql_cmd="$(which mysql 2>/dev/null || command -v mysql 2>/dev/null)"
-
- if [ ${#mysql_opts[@]} -eq 0 ]
- then
- unconfigured=1
-
- mysql_cmds[local]="$mysql_cmd"
-
- if [ $tryroot -eq 1 ]
- then
- # the user has not configured us for mysql access
- # if the root user is passwordless in mysql, we can
- # attempt to connect to mysql as root
- mysql_opts[local]="-u root"
- else
- mysql_opts[local]=
- fi
- fi
-
- # check once if the url works
- for m in "${!mysql_opts[@]}"
- do
- [ -z "${mysql_cmds[$m]}" ] && mysql_cmds[$m]="$mysql_cmd"
- if [ -z "${mysql_cmds[$m]}" ]
- then
- error "cannot get mysql command for '$m'. Please set mysql_cmds[$m]='/path/to/mysql', in $confd/mysql.conf"
- fi
-
- mysql_get "${mysql_cmds[$m]}" ${mysql_opts[$m]}
- if [ ! $? -eq 0 ]
- then
- error "cannot get global status for '$m'. Please set mysql_opts[$m]='options' to whatever needed to get connected to the mysql server, in $confd/mysql.conf"
- unset mysql_cmds[$m]
- unset mysql_opts[$m]
- unset mysql_ids[$m]
- continue
- fi
-
- mysql_ids[$m]="$( fixid "$m" )"
- done
-
- if [ ${#mysql_opts[@]} -eq 0 ]
- then
- if [ ${unconfigured} -eq 1 -a ${tryroot} -eq 0 ]
- then
- mysql_check tryroot "${@}"
- return $?
- else
- error "no mysql servers found. Please set mysql_opts[name]='options' to whatever needed to get connected to the mysql server, in $confd/mysql.conf"
- return 1
- fi
- fi
-
- return 0
-}
-
-mysql_create() {
- local x
-
- # create the charts
- for x in "${mysql_ids[@]}"
- do
- cat <<EOF
-CHART mysql_$x.net '' "mysql Bandwidth" "kilobits/s" bandwidth mysql.net area $((mysql_priority + 1)) $mysql_update_every
-DIMENSION Bytes_received in incremental 8 1024
-DIMENSION Bytes_sent out incremental -8 1024
-
-CHART mysql_$x.queries '' "mysql Queries" "queries/s" queries mysql.queries line $((mysql_priority + 2)) $mysql_update_every
-DIMENSION Queries queries incremental 1 1
-DIMENSION Questions questions incremental 1 1
-DIMENSION Slow_queries slow_queries incremental -1 1
-
-CHART mysql_$x.handlers '' "mysql Handlers" "handlers/s" handlers mysql.handlers line $((mysql_priority + 3)) $mysql_update_every
-DIMENSION Handler_commit commit incremental 1 1
-DIMENSION Handler_delete delete incremental 1 1
-DIMENSION Handler_prepare prepare incremental 1 1
-DIMENSION Handler_read_first read_first incremental 1 1
-DIMENSION Handler_read_key read_key incremental 1 1
-DIMENSION Handler_read_next read_next incremental 1 1
-DIMENSION Handler_read_prev read_prev incremental 1 1
-DIMENSION Handler_read_rnd read_rnd incremental 1 1
-DIMENSION Handler_read_rnd_next read_rnd_next incremental 1 1
-DIMENSION Handler_rollback rollback incremental 1 1
-DIMENSION Handler_savepoint savepoint incremental 1 1
-DIMENSION Handler_savepoint_rollback savepoint_rollback incremental 1 1
-DIMENSION Handler_update update incremental 1 1
-DIMENSION Handler_write write incremental 1 1
-
-CHART mysql_$x.table_locks '' "mysql Tables Locks" "locks/s" locks mysql.table_locks line $((mysql_priority + 4)) $mysql_update_every
-DIMENSION Table_locks_immediate immediate incremental 1 1
-DIMENSION Table_locks_waited waited incremental -1 1
-
-CHART mysql_$x.join_issues '' "mysql Select Join Issues" "joins/s" issues mysql.join_issues line $((mysql_priority + 5)) $mysql_update_every
-DIMENSION Select_full_join full_join incremental 1 1
-DIMENSION Select_full_range_join full_range_join incremental 1 1
-DIMENSION Select_range range incremental 1 1
-DIMENSION Select_range_check range_check incremental 1 1
-DIMENSION Select_scan scan incremental 1 1
-
-CHART mysql_$x.sort_issues '' "mysql Sort Issues" "issues/s" issues mysql.sort.issues line $((mysql_priority + 6)) $mysql_update_every
-DIMENSION Sort_merge_passes merge_passes incremental 1 1
-DIMENSION Sort_range range incremental 1 1
-DIMENSION Sort_scan scan incremental 1 1
-
-CHART mysql_$x.tmp '' "mysql Tmp Operations" "counter" temporaries mysql.tmp line $((mysql_priority + 7)) $mysql_update_every
-DIMENSION Created_tmp_disk_tables disk_tables incremental 1 1
-DIMENSION Created_tmp_files files incremental 1 1
-DIMENSION Created_tmp_tables tables incremental 1 1
-
-CHART mysql_$x.connections '' "mysql Connections" "connections/s" connections mysql.connections line $((mysql_priority + 8)) $mysql_update_every
-DIMENSION Connections all incremental 1 1
-DIMENSION Aborted_connects aborded incremental 1 1
-
-CHART mysql_$x.binlog_cache '' "mysql Binlog Cache" "transactions/s" binlog mysql.binlog_cache line $((mysql_priority + 9)) $mysql_update_every
-DIMENSION Binlog_cache_disk_use disk incremental 1 1
-DIMENSION Binlog_cache_use all incremental 1 1
-
-CHART mysql_$x.threads '' "mysql Threads" "threads" threads mysql.threads line $((mysql_priority + 10)) $mysql_update_every
-DIMENSION Threads_connected connected absolute 1 1
-DIMENSION Threads_created created incremental 1 1
-DIMENSION Threads_cached cached absolute -1 1
-DIMENSION Threads_running running absolute 1 1
-
-CHART mysql_$x.thread_cache_misses '' "mysql Threads Cache Misses" "misses" threads mysql.thread_cache_misses area $((mysql_priority + 11)) $mysql_update_every
-DIMENSION misses misses absolute 1 100
-
-CHART mysql_$x.innodb_io '' "mysql InnoDB I/O Bandwidth" "kilobytes/s" innodb mysql.innodb_io area $((mysql_priority + 12)) $mysql_update_every
-DIMENSION Innodb_data_read read incremental 1 1024
-DIMENSION Innodb_data_written write incremental -1 1024
-
-CHART mysql_$x.innodb_io_ops '' "mysql InnoDB I/O Operations" "operations/s" innodb mysql.innodb_io_ops line $((mysql_priority + 13)) $mysql_update_every
-DIMENSION Innodb_data_reads reads incremental 1 1
-DIMENSION Innodb_data_writes writes incremental -1 1
-DIMENSION Innodb_data_fsyncs fsyncs incremental 1 1
-
-CHART mysql_$x.innodb_io_pending_ops '' "mysql InnoDB Pending I/O Operations" "operations" innodb mysql.innodb_io_pending_ops line $((mysql_priority + 14)) $mysql_update_every
-DIMENSION Innodb_data_pending_reads reads absolute 1 1
-DIMENSION Innodb_data_pending_writes writes absolute -1 1
-DIMENSION Innodb_data_pending_fsyncs fsyncs absolute 1 1
-
-CHART mysql_$x.innodb_log '' "mysql InnoDB Log Operations" "operations/s" innodb mysql.innodb_log line $((mysql_priority + 15)) $mysql_update_every
-DIMENSION Innodb_log_waits waits incremental 1 1
-DIMENSION Innodb_log_write_requests write_requests incremental -1 1
-DIMENSION Innodb_log_writes writes incremental -1 1
-
-CHART mysql_$x.innodb_os_log '' "mysql InnoDB OS Log Operations" "operations" innodb mysql.innodb_os_log line $((mysql_priority + 16)) $mysql_update_every
-DIMENSION Innodb_os_log_fsyncs fsyncs incremental 1 1
-DIMENSION Innodb_os_log_pending_fsyncs pending_fsyncs absolute 1 1
-DIMENSION Innodb_os_log_pending_writes pending_writes absolute -1 1
-
-CHART mysql_$x.innodb_os_log_io '' "mysql InnoDB OS Log Bandwidth" "kilobytes/s" innodb mysql.innodb_os_log_io area $((mysql_priority + 17)) $mysql_update_every
-DIMENSION Innodb_os_log_written write incremental -1 1024
-
-CHART mysql_$x.innodb_cur_row_lock '' "mysql InnoDB Current Row Locks" "operations" innodb mysql.innodb_cur_row_lock area $((mysql_priority + 18)) $mysql_update_every
-DIMENSION Innodb_row_lock_current_waits current_waits absolute 1 1
-
-CHART mysql_$x.innodb_rows '' "mysql InnoDB Row Operations" "operations/s" innodb mysql.innodb_rows area $((mysql_priority + 19)) $mysql_update_every
-DIMENSION Innodb_rows_read read incremental 1 1
-DIMENSION Innodb_rows_deleted deleted incremental -1 1
-DIMENSION Innodb_rows_inserted inserted incremental 1 1
-DIMENSION Innodb_rows_updated updated incremental -1 1
-
-CHART mysql_$x.innodb_buffer_pool_pages '' "mysql InnoDB Buffer Pool Pages" "pages" innodb mysql.innodb_buffer_pool_pages line $((mysql_priority + 20)) $mysql_update_every
-DIMENSION Innodb_buffer_pool_pages_data data absolute 1 1
-DIMENSION Innodb_buffer_pool_pages_dirty dirty absolute -1 1
-DIMENSION Innodb_buffer_pool_pages_free free absolute 1 1
-DIMENSION Innodb_buffer_pool_pages_flushed flushed incremental -1 1
-DIMENSION Innodb_buffer_pool_pages_misc misc absolute -1 1
-DIMENSION Innodb_buffer_pool_pages_total total absolute 1 1
-
-CHART mysql_$x.innodb_buffer_pool_bytes '' "mysql InnoDB Buffer Pool Bytes" "MB" innodb mysql.innodb_buffer_pool_bytes area $((mysql_priority + 21)) $mysql_update_every
-DIMENSION Innodb_buffer_pool_bytes_data data absolute 1 $((1024 * 1024))
-DIMENSION Innodb_buffer_pool_bytes_dirty dirty absolute -1 $((1024 * 1024))
-
-CHART mysql_$x.innodb_buffer_pool_read_ahead '' "mysql InnoDB Buffer Pool Read Ahead" "operations/s" innodb mysql.innodb_buffer_pool_read_ahead area $((mysql_priority + 22)) $mysql_update_every
-DIMENSION Innodb_buffer_pool_read_ahead all incremental 1 1
-DIMENSION Innodb_buffer_pool_read_ahead_evicted evicted incremental -1 1
-DIMENSION Innodb_buffer_pool_read_ahead_rnd random incremental 1 1
-
-CHART mysql_$x.innodb_buffer_pool_reqs '' "mysql InnoDB Buffer Pool Requests" "requests/s" innodb mysql.innodb_buffer_pool_reqs area $((mysql_priority + 23)) $mysql_update_every
-DIMENSION Innodb_buffer_pool_read_requests reads incremental 1 1
-DIMENSION Innodb_buffer_pool_write_requests writes incremental -1 1
-
-CHART mysql_$x.innodb_buffer_pool_ops '' "mysql InnoDB Buffer Pool Operations" "operations/s" innodb mysql.innodb_buffer_pool_ops area $((mysql_priority + 24)) $mysql_update_every
-DIMENSION Innodb_buffer_pool_reads 'disk reads' incremental 1 1
-DIMENSION Innodb_buffer_pool_wait_free 'wait free' incremental -1 1
-
-CHART mysql_$x.qcache_ops '' "mysql QCache Operations" "queries/s" qcache mysql.qcache_ops line $((mysql_priority + 25)) $mysql_update_every
-DIMENSION Qcache_hits hits incremental 1 1
-DIMENSION Qcache_lowmem_prunes 'lowmem prunes' incremental -1 1
-DIMENSION Qcache_inserts inserts incremental 1 1
-DIMENSION Qcache_not_cached 'not cached' incremental -1 1
-
-CHART mysql_$x.qcache '' "mysql QCache Queries in Cache" "queries" qcache mysql.qcache line $((mysql_priority + 26)) $mysql_update_every
-DIMENSION Qcache_queries_in_cache queries absolute 1 1
-
-CHART mysql_$x.qcache_freemem '' "mysql QCache Free Memory" "MB" qcache mysql.qcache_freemem area $((mysql_priority + 27)) $mysql_update_every
-DIMENSION Qcache_free_memory free absolute 1 $((1024 * 1024))
-
-CHART mysql_$x.qcache_memblocks '' "mysql QCache Memory Blocks" "blocks" qcache mysql.qcache_memblocks line $((mysql_priority + 28)) $mysql_update_every
-DIMENSION Qcache_free_blocks free absolute 1 1
-DIMENSION Qcache_total_blocks total absolute 1 1
-
-CHART mysql_$x.key_blocks '' "mysql MyISAM Key Cache Blocks" "blocks" myisam mysql.key_blocks line $((mysql_priority + 29)) $mysql_update_every
-DIMENSION Key_blocks_unused unused absolute 1 1
-DIMENSION Key_blocks_used used absolute -1 1
-DIMENSION Key_blocks_not_flushed 'not flushed' absolute 1 1
-
-CHART mysql_$x.key_requests '' "mysql MyISAM Key Cache Requests" "requests/s" myisam mysql.key_requests area $((mysql_priority + 30)) $mysql_update_every
-DIMENSION Key_read_requests reads incremental 1 1
-DIMENSION Key_write_requests writes incremental -1 1
-
-CHART mysql_$x.key_disk_ops '' "mysql MyISAM Key Cache Disk Operations" "operations/s" myisam mysql.key_disk_ops area $((mysql_priority + 31)) $mysql_update_every
-DIMENSION Key_reads reads incremental 1 1
-DIMENSION Key_writes writes incremental -1 1
-
-CHART mysql_$x.files '' "mysql Open Files" "files" files mysql.files line $((mysql_priority + 32)) $mysql_update_every
-DIMENSION Open_files files absolute 1 1
-
-CHART mysql_$x.files_rate '' "mysql Opened Files Rate" "files/s" files mysql.files_rate line $((mysql_priority + 33)) $mysql_update_every
-DIMENSION Opened_files files incremental 1 1
-EOF
-
- if [ ! -z "${mysql_data[Binlog_stmt_cache_disk_use]}" ]
- then
- cat <<EOF
-CHART mysql_$x.binlog_stmt_cache '' "mysql Binlog Statement Cache" "statements/s" binlog mysql.binlog_stmt_cache line $((mysql_priority + 50)) $mysql_update_every
-DIMENSION Binlog_stmt_cache_disk_use disk incremental 1 1
-DIMENSION Binlog_stmt_cache_use all incremental 1 1
-EOF
- fi
-
- if [ ! -z "${mysql_data[Connection_errors_accept]}" ]
- then
- cat <<EOF
-CHART mysql_$x.connection_errors '' "mysql Connection Errors" "connections/s" connections mysql.connection_errors line $((mysql_priority + 51)) $mysql_update_every
-DIMENSION Connection_errors_accept accept incremental 1 1
-DIMENSION Connection_errors_internal internal incremental 1 1
-DIMENSION Connection_errors_max_connections max incremental 1 1
-DIMENSION Connection_errors_peer_addr peer_addr incremental 1 1
-DIMENSION Connection_errors_select select incremental 1 1
-DIMENSION Connection_errors_tcpwrap tcpwrap incremental 1 1
-EOF
- fi
-
- done
- return 0
-}
-
-
-mysql_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- local m x
- for m in "${!mysql_ids[@]}"
- do
- x="${mysql_ids[$m]}"
- mysql_get "${mysql_cmds[$m]}" ${mysql_opts[$m]}
-
- if [ $? -ne 0 ]
- then
- unset mysql_ids[$m]
- unset mysql_opts[$m]
- unset mysql_cmds[$m]
- error "failed to get values for '$m', disabling it."
- continue
- fi
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN mysql_$x.net $1
-SET Bytes_received = ${mysql_data[Bytes_received]}
-SET Bytes_sent = ${mysql_data[Bytes_sent]}
-END
-BEGIN mysql_$x.queries $1
-SET Queries = ${mysql_data[Queries]}
-SET Questions = ${mysql_data[Questions]}
-SET Slow_queries = ${mysql_data[Slow_queries]}
-END
-BEGIN mysql_$x.handlers $1
-SET Handler_commit = ${mysql_data[Handler_commit]}
-SET Handler_delete = ${mysql_data[Handler_delete]}
-SET Handler_prepare = ${mysql_data[Handler_prepare]}
-SET Handler_read_first = ${mysql_data[Handler_read_first]}
-SET Handler_read_key = ${mysql_data[Handler_read_key]}
-SET Handler_read_next = ${mysql_data[Handler_read_next]}
-SET Handler_read_prev = ${mysql_data[Handler_read_prev]}
-SET Handler_read_rnd = ${mysql_data[Handler_read_rnd]}
-SET Handler_read_rnd_next = ${mysql_data[Handler_read_rnd_next]}
-SET Handler_rollback = ${mysql_data[Handler_rollback]}
-SET Handler_savepoint = ${mysql_data[Handler_savepoint]}
-SET Handler_savepoint_rollback = ${mysql_data[Handler_savepoint_rollback]}
-SET Handler_update = ${mysql_data[Handler_update]}
-SET Handler_write = ${mysql_data[Handler_write]}
-END
-BEGIN mysql_$x.table_locks $1
-SET Table_locks_immediate = ${mysql_data[Table_locks_immediate]}
-SET Table_locks_waited = ${mysql_data[Table_locks_waited]}
-END
-BEGIN mysql_$x.join_issues $1
-SET Select_full_join = ${mysql_data[Select_full_join]}
-SET Select_full_range_join = ${mysql_data[Select_full_range_join]}
-SET Select_range = ${mysql_data[Select_range]}
-SET Select_range_check = ${mysql_data[Select_range_check]}
-SET Select_scan = ${mysql_data[Select_scan]}
-END
-BEGIN mysql_$x.sort_issues $1
-SET Sort_merge_passes = ${mysql_data[Sort_merge_passes]}
-SET Sort_range = ${mysql_data[Sort_range]}
-SET Sort_scan = ${mysql_data[Sort_scan]}
-END
-BEGIN mysql_$x.tmp $1
-SET Created_tmp_disk_tables = ${mysql_data[Created_tmp_disk_tables]}
-SET Created_tmp_files = ${mysql_data[Created_tmp_files]}
-SET Created_tmp_tables = ${mysql_data[Created_tmp_tables]}
-END
-BEGIN mysql_$x.connections $1
-SET Connections = ${mysql_data[Connections]}
-SET Aborted_connects = ${mysql_data[Aborted_connects]}
-END
-BEGIN mysql_$x.binlog_cache $1
-SET Binlog_cache_disk_use = ${mysql_data[Binlog_cache_disk_use]}
-SET Binlog_cache_use = ${mysql_data[Binlog_cache_use]}
-END
-BEGIN mysql_$x.threads $1
-SET Threads_connected = ${mysql_data[Threads_connected]}
-SET Threads_created = ${mysql_data[Threads_created]}
-SET Threads_cached = ${mysql_data[Threads_cached]}
-SET Threads_running = ${mysql_data[Threads_running]}
-END
-BEGIN mysql_$x.thread_cache_misses $1
-SET misses = ${mysql_data[Thread_cache_misses]}
-END
-BEGIN mysql_$x.innodb_io $1
-SET Innodb_data_read = ${mysql_data[Innodb_data_read]}
-SET Innodb_data_written = ${mysql_data[Innodb_data_written]}
-END
-BEGIN mysql_$x.innodb_io_ops $1
-SET Innodb_data_reads = ${mysql_data[Innodb_data_reads]}
-SET Innodb_data_writes = ${mysql_data[Innodb_data_writes]}
-SET Innodb_data_fsyncs = ${mysql_data[Innodb_data_fsyncs]}
-END
-BEGIN mysql_$x.innodb_io_pending_ops $1
-SET Innodb_data_pending_reads = ${mysql_data[Innodb_data_pending_reads]}
-SET Innodb_data_pending_writes = ${mysql_data[Innodb_data_pending_writes]}
-SET Innodb_data_pending_fsyncs = ${mysql_data[Innodb_data_pending_fsyncs]}
-END
-BEGIN mysql_$x.innodb_log $1
-SET Innodb_log_waits = ${mysql_data[Innodb_log_waits]}
-SET Innodb_log_write_requests = ${mysql_data[Innodb_log_write_requests]}
-SET Innodb_log_writes = ${mysql_data[Innodb_log_writes]}
-END
-BEGIN mysql_$x.innodb_os_log $1
-SET Innodb_os_log_fsyncs = ${mysql_data[Innodb_os_log_fsyncs]}
-SET Innodb_os_log_pending_fsyncs = ${mysql_data[Innodb_os_log_pending_fsyncs]}
-SET Innodb_os_log_pending_writes = ${mysql_data[Innodb_os_log_pending_writes]}
-END
-BEGIN mysql_$x.innodb_os_log_io $1
-SET Innodb_os_log_written = ${mysql_data[Innodb_os_log_written]}
-END
-BEGIN mysql_$x.innodb_cur_row_lock $1
-SET Innodb_row_lock_current_waits = ${mysql_data[Innodb_row_lock_current_waits]}
-END
-BEGIN mysql_$x.innodb_rows $1
-SET Innodb_rows_inserted = ${mysql_data[Innodb_rows_inserted]}
-SET Innodb_rows_read = ${mysql_data[Innodb_rows_read]}
-SET Innodb_rows_updated = ${mysql_data[Innodb_rows_updated]}
-SET Innodb_rows_deleted = ${mysql_data[Innodb_rows_deleted]}
-END
-BEGIN mysql_$x.innodb_buffer_pool_pages $1
-SET Innodb_buffer_pool_pages_data = ${mysql_data[Innodb_buffer_pool_pages_data]}
-SET Innodb_buffer_pool_pages_dirty = ${mysql_data[Innodb_buffer_pool_pages_dirty]}
-SET Innodb_buffer_pool_pages_free = ${mysql_data[Innodb_buffer_pool_pages_free]}
-SET Innodb_buffer_pool_pages_flushed = ${mysql_data[Innodb_buffer_pool_pages_flushed]}
-SET Innodb_buffer_pool_pages_misc = ${mysql_data[Innodb_buffer_pool_pages_misc]}
-SET Innodb_buffer_pool_pages_total = ${mysql_data[Innodb_buffer_pool_pages_total]}
-END
-BEGIN mysql_$x.innodb_buffer_pool_bytes $1
-SET Innodb_buffer_pool_bytes_data = ${mysql_data[Innodb_buffer_pool_bytes_data]}
-SET Innodb_buffer_pool_bytes_dirty = ${mysql_data[Innodb_buffer_pool_bytes_dirty]}
-END
-BEGIN mysql_$x.innodb_buffer_pool_read_ahead $1
-SET Innodb_buffer_pool_read_ahead = ${mysql_data[Innodb_buffer_pool_read_ahead]}
-SET Innodb_buffer_pool_read_ahead_evicted = ${mysql_data[Innodb_buffer_pool_read_ahead_evicted]}
-SET Innodb_buffer_pool_read_ahead_rnd = ${mysql_data[Innodb_buffer_pool_read_ahead_rnd]}
-END
-BEGIN mysql_$x.innodb_buffer_pool_reqs $1
-SET Innodb_buffer_pool_read_requests = ${mysql_data[Innodb_buffer_pool_read_requests]}
-SET Innodb_buffer_pool_write_requests = ${mysql_data[Innodb_buffer_pool_write_requests]}
-END
-BEGIN mysql_$x.innodb_buffer_pool_ops $1
-SET Innodb_buffer_pool_reads = ${mysql_data[Innodb_buffer_pool_reads]}
-SET Innodb_buffer_pool_wait_free = ${mysql_data[Innodb_buffer_pool_wait_free]}
-END
-BEGIN mysql_$x.qcache_ops $1
-SET Qcache_hits hits = ${mysql_data[Qcache_hits]}
-SET Qcache_lowmem_prunes = ${mysql_data[Qcache_lowmem_prunes]}
-SET Qcache_inserts = ${mysql_data[Qcache_inserts]}
-SET Qcache_not_cached = ${mysql_data[Qcache_not_cached]}
-END
-BEGIN mysql_$x.qcache $1
-SET Qcache_queries_in_cache = ${mysql_data[Qcache_queries_in_cache]}
-END
-BEGIN mysql_$x.qcache_freemem $1
-SET Qcache_free_memory = ${mysql_data[Qcache_free_memory]}
-END
-BEGIN mysql_$x.qcache_memblocks $1
-SET Qcache_free_blocks = ${mysql_data[Qcache_free_blocks]}
-SET Qcache_total_blocks = ${mysql_data[Qcache_total_blocks]}
-END
-BEGIN mysql_$x.key_blocks $1
-SET Key_blocks_unused = ${mysql_data[Key_blocks_unused]}
-SET Key_blocks_used = ${mysql_data[Key_blocks_used]}
-SET Key_blocks_not_flushed = ${mysql_data[Key_blocks_not_flushed]}
-END
-BEGIN mysql_$x.key_requests $1
-SET Key_read_requests = ${mysql_data[Key_read_requests]}
-SET Key_write_requests = ${mysql_data[Key_write_requests]}
-END
-BEGIN mysql_$x.key_disk_ops $1
-SET Key_reads = ${mysql_data[Key_reads]}
-SET Key_writes = ${mysql_data[Key_writes]}
-END
-BEGIN mysql_$x.files $1
-SET Open_files = ${mysql_data[Open_files]}
-END
-BEGIN mysql_$x.files_rate $1
-SET Opened_files = ${mysql_data[Opened_files]}
-END
-VALUESEOF
-
- if [ ! -z "${mysql_data[Binlog_stmt_cache_disk_use]}" ]
- then
- cat <<VALUESEOF
-BEGIN mysql_$x.binlog_stmt_cache $1
-SET Binlog_stmt_cache_disk_use = ${mysql_data[Binlog_stmt_cache_disk_use]}
-SET Binlog_stmt_cache_use = ${mysql_data[Binlog_stmt_cache_use]}
-END
-VALUESEOF
- fi
-
- if [ ! -z "${mysql_data[Connection_errors_accept]}" ]
- then
- cat <<VALUESEOF
-BEGIN mysql_$x.connection_errors $1
-SET Connection_errors_accept = ${mysql_data[Connection_errors_accept]}
-SET Connection_errors_internal = ${mysql_data[Connection_errors_internal]}
-SET Connection_errors_max_connections = ${mysql_data[Connection_errors_max_connections]}
-SET Connection_errors_peer_addr = ${mysql_data[Connection_errors_peer_addr]}
-SET Connection_errors_select = ${mysql_data[Connection_errors_select]}
-SET Connection_errors_tcpwrap = ${mysql_data[Connection_errors_tcpwrap]}
-END
-VALUESEOF
- fi
- done
-
- [ ${#mysql_ids[@]} -eq 0 ] && error "no mysql servers left active." && return 1
- return 0
-}
-
diff --git a/charts.d/nginx.chart.sh b/charts.d/nginx.chart.sh
deleted file mode 100644
index d0df460ac..000000000
--- a/charts.d/nginx.chart.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# if this chart is called X.chart.sh, then all functions and global variables
-# must start with X_
-
-nginx_url="http://127.0.0.1:80/stub_status"
-nginx_curl_opts=""
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-nginx_update_every=
-nginx_priority=60000
-
-declare -a nginx_response=()
-nginx_active_connections=0
-nginx_accepts=0
-nginx_handled=0
-nginx_requests=0
-nginx_reading=0
-nginx_writing=0
-nginx_waiting=0
-nginx_get() {
- nginx_response=($(run curl -Ss ${nginx_curl_opts} "${nginx_url}"))
- [ $? -ne 0 -o "${#nginx_response[@]}" -eq 0 ] && return 1
-
- if [ "${nginx_response[0]}" != "Active" \
- -o "${nginx_response[1]}" != "connections:" \
- -o "${nginx_response[3]}" != "server" \
- -o "${nginx_response[4]}" != "accepts" \
- -o "${nginx_response[5]}" != "handled" \
- -o "${nginx_response[6]}" != "requests" \
- -o "${nginx_response[10]}" != "Reading:" \
- -o "${nginx_response[12]}" != "Writing:" \
- -o "${nginx_response[14]}" != "Waiting:" \
- ]
- then
- error "Invalid response from nginx server: ${nginx_response[*]}"
- return 1
- fi
-
- nginx_active_connections="${nginx_response[2]}"
- nginx_accepts="${nginx_response[7]}"
- nginx_handled="${nginx_response[8]}"
- nginx_requests="${nginx_response[9]}"
- nginx_reading="${nginx_response[11]}"
- nginx_writing="${nginx_response[13]}"
- nginx_waiting="${nginx_response[15]}"
-
- if [ -z "${nginx_active_connections}" \
- -o -z "${nginx_accepts}" \
- -o -z "${nginx_handled}" \
- -o -z "${nginx_requests}" \
- -o -z "${nginx_reading}" \
- -o -z "${nginx_writing}" \
- -o -z "${nginx_waiting}" \
- ]
- then
- error "empty values got from nginx server: ${nginx_response[*]}"
- return 1
- fi
-
- return 0
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-nginx_check() {
-
- nginx_get
- if [ $? -ne 0 ]
- then
- error "cannot find stub_status on URL '${nginx_url}'. Please set nginx_url='http://nginx.server/stub_status' in $confd/nginx.conf"
- return 1
- fi
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- return 0
-}
-
-# _create is called once, to create the charts
-nginx_create() {
- cat <<EOF
-CHART nginx_local.connections '' "nginx Active Connections" "connections" nginx nginx.connections line $((nginx_priority + 1)) $nginx_update_every
-DIMENSION active '' absolute 1 1
-
-CHART nginx_local.requests '' "nginx Requests" "requests/s" nginx nginx.requests line $((nginx_priority + 2)) $nginx_update_every
-DIMENSION requests '' incremental 1 1
-
-CHART nginx_local.connections_status '' "nginx Active Connections by Status" "connections" nginx nginx.connections.status line $((nginx_priority + 3)) $nginx_update_every
-DIMENSION reading '' absolute 1 1
-DIMENSION writing '' absolute 1 1
-DIMENSION waiting idle absolute 1 1
-
-CHART nginx_local.connect_rate '' "nginx Connections Rate" "connections/s" nginx nginx.connections.rate line $((nginx_priority + 4)) $nginx_update_every
-DIMENSION accepts accepted incremental 1 1
-DIMENSION handled '' incremental 1 1
-EOF
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-nginx_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- nginx_get || return 1
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN nginx_local.connections $1
-SET active = $((nginx_active_connections))
-END
-BEGIN nginx_local.requests $1
-SET requests = $((nginx_requests))
-END
-BEGIN nginx_local.connections_status $1
-SET reading = $((nginx_reading))
-SET writing = $((nginx_writing))
-SET waiting = $((nginx_waiting))
-END
-BEGIN nginx_local.connect_rate $1
-SET accepts = $((nginx_accepts))
-SET handled = $((nginx_handled))
-END
-VALUESEOF
-
- return 0
-}
diff --git a/charts.d/nut.chart.sh b/charts.d/nut.chart.sh
deleted file mode 100644
index 6137639f9..000000000
--- a/charts.d/nut.chart.sh
+++ /dev/null
@@ -1,222 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016-2017 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# a space separated list of UPS names
-# if empty, the list returned by 'upsc -l' will be used
-nut_ups=
-
-# how frequently to collect UPS data
-nut_update_every=2
-
-# how much time in seconds, to wait for nut to respond
-nut_timeout=2
-
-# set this to 1, to enable another chart showing the number
-# of UPS clients connected to upsd
-nut_clients_chart=0
-
-# the priority of nut related to other charts
-nut_priority=90000
-
-declare -A nut_ids=()
-
-nut_get_all() {
- run -t $nut_timeout upsc -l
-}
-
-nut_get() {
- run -t $nut_timeout upsc "$1"
-
- if [ "${nut_clients_chart}" -eq "1" ]
- then
- printf "ups.connected_clients: "
- run -t $nut_timeout upsc -c "$1" | wc -l
- fi
-}
-
-nut_check() {
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- local x
-
- require_cmd upsc || return 1
-
- [ -z "$nut_ups" ] && nut_ups="$( nut_get_all )"
-
- for x in $nut_ups
- do
- nut_get "$x" >/dev/null
- if [ $? -eq 0 ]
- then
- nut_ids[$x]="$( fixid "$x" )"
- continue
- fi
- error "cannot get information for NUT UPS '$x'."
- done
-
- if [ ${#nut_ids[@]} -eq 0 ]
- then
- error "Cannot find UPSes - please set nut_ups='ups_name' in $confd/nut.conf"
- return 1
- fi
-
- return 0
-}
-
-nut_create() {
- # create the charts
- local x
-
- for x in "${nut_ids[@]}"
- do
- cat <<EOF
-CHART nut_$x.charge '' "UPS Charge" "percentage" ups nut.charge area $((nut_priority + 1)) $nut_update_every
-DIMENSION battery_charge charge absolute 1 100
-
-CHART nut_$x.battery_voltage '' "UPS Battery Voltage" "Volts" ups nut.battery.voltage line $((nut_priority + 2)) $nut_update_every
-DIMENSION battery_voltage voltage absolute 1 100
-DIMENSION battery_voltage_high high absolute 1 100
-DIMENSION battery_voltage_low low absolute 1 100
-DIMENSION battery_voltage_nominal nominal absolute 1 100
-
-CHART nut_$x.input_voltage '' "UPS Input Voltage" "Volts" input nut.input.voltage line $((nut_priority + 3)) $nut_update_every
-DIMENSION input_voltage voltage absolute 1 100
-DIMENSION input_voltage_fault fault absolute 1 100
-DIMENSION input_voltage_nominal nominal absolute 1 100
-
-CHART nut_$x.input_current '' "UPS Input Current" "Ampere" input nut.input.current line $((nut_priority + 4)) $nut_update_every
-DIMENSION input_current_nominal nominal absolute 1 100
-
-CHART nut_$x.input_frequency '' "UPS Input Frequency" "Hz" input nut.input.frequency line $((nut_priority + 5)) $nut_update_every
-DIMENSION input_frequency frequency absolute 1 100
-DIMENSION input_frequency_nominal nominal absolute 1 100
-
-CHART nut_$x.output_voltage '' "UPS Output Voltage" "Volts" output nut.output.voltage line $((nut_priority + 6)) $nut_update_every
-DIMENSION output_voltage voltage absolute 1 100
-
-CHART nut_$x.load '' "UPS Load" "percentage" ups nut.load area $((nut_priority)) $nut_update_every
-DIMENSION load load absolute 1 100
-
-CHART nut_$x.temp '' "UPS Temperature" "temperature" ups nut.temperature line $((nut_priority + 7)) $nut_update_every
-DIMENSION temp temp absolute 1 100
-EOF
-
- if [ "${nut_clients_chart}" = "1" ]
- then
- cat <<EOF2
-CHART nut_$x.clients '' "UPS Connected Clients" "clients" ups nut.clients area $((nut_priority + 8)) $nut_update_every
-DIMENSION clients '' absolute 1 1
-EOF2
- fi
-
- done
-
- return 0
-}
-
-
-nut_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- local i x
- for i in "${!nut_ids[@]}"
- do
- x="${nut_ids[$i]}"
- nut_get "$i" | awk "
-BEGIN {
- battery_charge = 0;
- battery_voltage = 0;
- battery_voltage_high = 0;
- battery_voltage_low = 0;
- battery_voltage_nominal = 0;
- input_voltage = 0;
- input_voltage_fault = 0;
- input_voltage_nominal = 0;
- input_current_nominal = 0;
- input_frequency = 0;
- input_frequency_nominal = 0;
- output_voltage = 0;
- load = 0;
- temp = 0;
- client = 0;
- do_clients = ${nut_clients_chart};
-}
-/^battery.charge: .*/ { battery_charge = \$2 * 100 };
-/^battery.voltage: .*/ { battery_voltage = \$2 * 100 };
-/^battery.voltage.high: .*/ { battery_voltage_high = \$2 * 100 };
-/^battery.voltage.low: .*/ { battery_voltage_low = \$2 * 100 };
-/^battery.voltage.nominal: .*/ { battery_voltage_nominal = \$2 * 100 };
-/^input.voltage: .*/ { input_voltage = \$2 * 100 };
-/^input.voltage.fault: .*/ { input_voltage_fault = \$2 * 100 };
-/^input.voltage.nominal: .*/ { input_voltage_nominal = \$2 * 100 };
-/^input.current.nominal: .*/ { input_current_nominal = \$2 * 100 };
-/^input.frequency: .*/ { input_frequency = \$2 * 100 };
-/^input.frequency.nominal: .*/ { input_frequency_nominal = \$2 * 100 };
-/^output.voltage: .*/ { output_voltage = \$2 * 100 };
-/^ups.load: .*/ { load = \$2 * 100 };
-/^ups.temperature: .*/ { temp = \$2 * 100 };
-/^ups.connected_clients: .*/ { clients = \$2 };
-END {
- print \"BEGIN nut_$x.charge $1\";
- print \"SET battery_charge = \" battery_charge;
- print \"END\"
-
- print \"BEGIN nut_$x.battery_voltage $1\";
- print \"SET battery_voltage = \" battery_voltage;
- print \"SET battery_voltage_high = \" battery_voltage_high;
- print \"SET battery_voltage_low = \" battery_voltage_low;
- print \"SET battery_voltage_nominal = \" battery_voltage_nominal;
- print \"END\"
-
- print \"BEGIN nut_$x.input_voltage $1\";
- print \"SET input_voltage = \" input_voltage;
- print \"SET input_voltage_fault = \" input_voltage_fault;
- print \"SET input_voltage_nominal = \" input_voltage_nominal;
- print \"END\"
-
- print \"BEGIN nut_$x.input_current $1\";
- print \"SET input_current_nominal = \" input_current_nominal;
- print \"END\"
-
- print \"BEGIN nut_$x.input_frequency $1\";
- print \"SET input_frequency = \" input_frequency;
- print \"SET input_frequency_nominal = \" input_frequency_nominal;
- print \"END\"
-
- print \"BEGIN nut_$x.output_voltage $1\";
- print \"SET output_voltage = \" output_voltage;
- print \"END\"
-
- print \"BEGIN nut_$x.load $1\";
- print \"SET load = \" load;
- print \"END\"
-
- print \"BEGIN nut_$x.temp $1\";
- print \"SET temp = \" temp;
- print \"END\"
-
- if(do_clients) {
- print \"BEGIN nut_$x.clients $1\";
- print \"SET clients = \" clients;
- print \"END\"
- }
-}"
- [ $? -ne 0 ] && unset nut_ids[$i] && error "failed to get values for '$i', disabling it."
- done
-
- [ ${#nut_ids[@]} -eq 0 ] && error "no UPSes left active." && return 1
- return 0
-}
diff --git a/charts.d/opensips.chart.sh b/charts.d/opensips.chart.sh
deleted file mode 100644
index 2a0249dae..000000000
--- a/charts.d/opensips.chart.sh
+++ /dev/null
@@ -1,322 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-opensips_opts="fifo get_statistics all"
-opensips_cmd=
-opensips_update_every=5
-opensips_timeout=2
-opensips_priority=80000
-
-opensips_get_stats() {
- run -t $opensips_timeout "$opensips_cmd" $opensips_opts |\
- grep "^\(core\|dialog\|net\|registrar\|shmem\|siptrace\|sl\|tm\|uri\|usrloc\):[a-zA-Z0-9_-]\+[[:space:]]*[=:]\+[[:space:]]*[0-9]\+[[:space:]]*$" |\
- sed \
- -e "s|[[:space:]]*[=:]\+[[:space:]]*\([0-9]\+\)[[:space:]]*$|=\1|g" \
- -e "s|[[:space:]:-]\+|_|g" \
- -e "s|^|opensips_|g"
-
- local ret=$?
- [ $ret -ne 0 ] && echo "opensips_command_failed=1"
- return $ret
-}
-
-opensips_check() {
- # if the user did not provide an opensips_cmd
- # try to find it in the system
- if [ -z "$opensips_cmd" ]
- then
- require_cmd opensipsctl || return 1
- fi
-
- # check once if the command works
- local x="$(opensips_get_stats | grep "^opensips_core_")"
- if [ ! $? -eq 0 -o -z "$x" ]
- then
- error "cannot get global status. Please set opensips_opts='options' whatever needed to get connected to opensips server, in $confd/opensips.conf"
- return 1
- fi
-
- return 0
-}
-
-opensips_create() {
- # create the charts
- cat <<EOF
-CHART opensips.dialogs_active '' "OpenSIPS Active Dialogs" "dialogs" dialogs '' area $((opensips_priority + 1)) $opensips_update_every
-DIMENSION dialog_active_dialogs active absolute 1 1
-DIMENSION dialog_early_dialogs early absolute -1 1
-
-CHART opensips.users '' "OpenSIPS Users" "users" users '' line $((opensips_priority + 2)) $opensips_update_every
-DIMENSION usrloc_registered_users registered absolute 1 1
-DIMENSION usrloc_location_users location absolute 1 1
-DIMENSION usrloc_location_contacts contacts absolute 1 1
-DIMENSION usrloc_location_expires expires incremental -1 1
-
-CHART opensips.registrar '' "OpenSIPS Registrar" "registrations/s" registrar '' line $((opensips_priority + 3)) $opensips_update_every
-DIMENSION registrar_accepted_regs accepted incremental 1 1
-DIMENSION registrar_rejected_regs rejected incremental -1 1
-
-CHART opensips.transactions '' "OpenSIPS Transactions" "transactions/s" transactions '' line $((opensips_priority + 4)) $opensips_update_every
-DIMENSION tm_UAS_transactions UAS incremental 1 1
-DIMENSION tm_UAC_transactions UAC incremental -1 1
-
-CHART opensips.core_rcv '' "OpenSIPS Core Receives" "queries/s" core '' line $((opensips_priority + 5)) $opensips_update_every
-DIMENSION core_rcv_requests requests incremental 1 1
-DIMENSION core_rcv_replies replies incremental -1 1
-
-CHART opensips.core_fwd '' "OpenSIPS Core Forwards" "queries/s" core '' line $((opensips_priority + 6)) $opensips_update_every
-DIMENSION core_fwd_requests requests incremental 1 1
-DIMENSION core_fwd_replies replies incremental -1 1
-
-CHART opensips.core_drop '' "OpenSIPS Core Drops" "queries/s" core '' line $((opensips_priority + 7)) $opensips_update_every
-DIMENSION core_drop_requests requests incremental 1 1
-DIMENSION core_drop_replies replies incremental -1 1
-
-CHART opensips.core_err '' "OpenSIPS Core Errors" "queries/s" core '' line $((opensips_priority + 8)) $opensips_update_every
-DIMENSION core_err_requests requests incremental 1 1
-DIMENSION core_err_replies replies incremental -1 1
-
-CHART opensips.core_bad '' "OpenSIPS Core Bad" "queries/s" core '' line $((opensips_priority + 9)) $opensips_update_every
-DIMENSION core_bad_URIs_rcvd bad_URIs_rcvd incremental 1 1
-DIMENSION core_unsupported_methods unsupported_methods incremental 1 1
-DIMENSION core_bad_msg_hdr bad_msg_hdr incremental 1 1
-
-CHART opensips.tm_replies '' "OpenSIPS TM Replies" "replies/s" transactions '' line $((opensips_priority + 10)) $opensips_update_every
-DIMENSION tm_received_replies received incremental 1 1
-DIMENSION tm_relayed_replies relayed incremental 1 1
-DIMENSION tm_local_replies local incremental 1 1
-
-CHART opensips.transactions_status '' "OpenSIPS Transactions Status" "transactions/s" transactions '' line $((opensips_priority + 11)) $opensips_update_every
-DIMENSION tm_2xx_transactions 2xx incremental 1 1
-DIMENSION tm_3xx_transactions 3xx incremental 1 1
-DIMENSION tm_4xx_transactions 4xx incremental 1 1
-DIMENSION tm_5xx_transactions 5xx incremental 1 1
-DIMENSION tm_6xx_transactions 6xx incremental 1 1
-
-CHART opensips.transactions_inuse '' "OpenSIPS InUse Transactions" "transactions" transactions '' line $((opensips_priority + 12)) $opensips_update_every
-DIMENSION tm_inuse_transactions inuse absolute 1 1
-
-CHART opensips.sl_replies '' "OpenSIPS SL Replies" "replies/s" core '' line $((opensips_priority + 13)) $opensips_update_every
-DIMENSION sl_1xx_replies 1xx incremental 1 1
-DIMENSION sl_2xx_replies 2xx incremental 1 1
-DIMENSION sl_3xx_replies 3xx incremental 1 1
-DIMENSION sl_4xx_replies 4xx incremental 1 1
-DIMENSION sl_5xx_replies 5xx incremental 1 1
-DIMENSION sl_6xx_replies 6xx incremental 1 1
-DIMENSION sl_sent_replies sent incremental 1 1
-DIMENSION sl_sent_err_replies error incremental 1 1
-DIMENSION sl_received_ACKs ACKed incremental 1 1
-
-CHART opensips.dialogs '' "OpenSIPS Dialogs" "dialogs/s" dialogs '' line $((opensips_priority + 14)) $opensips_update_every
-DIMENSION dialog_processed_dialogs processed incremental 1 1
-DIMENSION dialog_expired_dialogs expired incremental 1 1
-DIMENSION dialog_failed_dialogs failed incremental -1 1
-
-CHART opensips.net_waiting '' "OpenSIPS Network Waiting" "kilobytes" net '' line $((opensips_priority + 15)) $opensips_update_every
-DIMENSION net_waiting_udp UDP absolute 1 1024
-DIMENSION net_waiting_tcp TCP absolute 1 1024
-
-CHART opensips.uri_checks '' "OpenSIPS URI Checks" "checks / sec" uri '' line $((opensips_priority + 16)) $opensips_update_every
-DIMENSION uri_positive_checks positive incremental 1 1
-DIMENSION uri_negative_checks negative incremental -1 1
-
-CHART opensips.traces '' "OpenSIPS Traces" "traces / sec" traces '' line $((opensips_priority + 17)) $opensips_update_every
-DIMENSION siptrace_traced_requests requests incremental 1 1
-DIMENSION siptrace_traced_replies replies incremental -1 1
-
-CHART opensips.shmem '' "OpenSIPS Shared Memory" "kilobytes" mem '' line $((opensips_priority + 18)) $opensips_update_every
-DIMENSION shmem_total_size total absolute 1 1024
-DIMENSION shmem_used_size used absolute 1 1024
-DIMENSION shmem_real_used_size real_used absolute 1 1024
-DIMENSION shmem_max_used_size max_used absolute 1 1024
-DIMENSION shmem_free_size free absolute 1 1024
-
-CHART opensips.shmem_fragments '' "OpenSIPS Shared Memory Fragmentation" "fragments" mem '' line $((opensips_priority + 19)) $opensips_update_every
-DIMENSION shmem_fragments fragments absolute 1 1
-EOF
-
- return 0
-}
-
-opensips_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
-
- # 1. get the counters page from opensips
- # 2. sed to remove spaces; replace . with _; remove spaces around =; prepend each line with: local opensips_
- # 3. egrep lines starting with:
- # local opensips_client_http_ then one or more of these a-z 0-9 _ then = and one of more of 0-9
- # local opensips_server_all_ then one or more of these a-z 0-9 _ then = and one of more of 0-9
- # 4. then execute this as a script with the eval
- # be very carefull with eval:
- # prepare the script and always grep at the end the lines that are usefull, so that
- # even if something goes wrong, no other code can be executed
-
- unset \
- opensips_dialog_active_dialogs \
- opensips_dialog_early_dialogs \
- opensips_usrloc_registered_users \
- opensips_usrloc_location_users \
- opensips_usrloc_location_contacts \
- opensips_usrloc_location_expires \
- opensips_registrar_accepted_regs \
- opensips_registrar_rejected_regs \
- opensips_tm_UAS_transactions \
- opensips_tm_UAC_transactions \
- opensips_core_rcv_requests \
- opensips_core_rcv_replies \
- opensips_core_fwd_requests \
- opensips_core_fwd_replies \
- opensips_core_drop_requests \
- opensips_core_drop_replies \
- opensips_core_err_requests \
- opensips_core_err_replies \
- opensips_core_bad_URIs_rcvd \
- opensips_core_unsupported_methods \
- opensips_core_bad_msg_hdr \
- opensips_tm_received_replies \
- opensips_tm_relayed_replies \
- opensips_tm_local_replies \
- opensips_tm_2xx_transactions \
- opensips_tm_3xx_transactions \
- opensips_tm_4xx_transactions \
- opensips_tm_5xx_transactions \
- opensips_tm_6xx_transactions \
- opensips_tm_inuse_transactions \
- opensips_sl_1xx_replies \
- opensips_sl_2xx_replies \
- opensips_sl_3xx_replies \
- opensips_sl_4xx_replies \
- opensips_sl_5xx_replies \
- opensips_sl_6xx_replies \
- opensips_sl_sent_replies \
- opensips_sl_sent_err_replies \
- opensips_sl_received_ACKs \
- opensips_dialog_processed_dialogs \
- opensips_dialog_expired_dialogs \
- opensips_dialog_failed_dialogs \
- opensips_net_waiting_udp \
- opensips_net_waiting_tcp \
- opensips_uri_positive_checks \
- opensips_uri_negative_checks \
- opensips_siptrace_traced_requests \
- opensips_siptrace_traced_replies \
- opensips_shmem_total_size \
- opensips_shmem_used_size \
- opensips_shmem_real_used_size \
- opensips_shmem_max_used_size \
- opensips_shmem_free_size \
- opensips_shmem_fragments
-
- opensips_command_failed=0
- eval "local $(opensips_get_stats)"
- [ $? -ne 0 ] && return 1
-
- [ $opensips_command_failed -eq 1 ] && error "failed to get values, disabling." && return 1
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN opensips.dialogs_active $1
-SET dialog_active_dialogs = $opensips_dialog_active_dialogs
-SET dialog_early_dialogs = $opensips_dialog_early_dialogs
-END
-BEGIN opensips.users $1
-SET usrloc_registered_users = $opensips_usrloc_registered_users
-SET usrloc_location_users = $opensips_usrloc_location_users
-SET usrloc_location_contacts = $opensips_usrloc_location_contacts
-SET usrloc_location_expires = $opensips_usrloc_location_expires
-END
-BEGIN opensips.registrar $1
-SET registrar_accepted_regs = $opensips_registrar_accepted_regs
-SET registrar_rejected_regs = $opensips_registrar_rejected_regs
-END
-BEGIN opensips.transactions $1
-SET tm_UAS_transactions = $opensips_tm_UAS_transactions
-SET tm_UAC_transactions = $opensips_tm_UAC_transactions
-END
-BEGIN opensips.core_rcv $1
-SET core_rcv_requests = $opensips_core_rcv_requests
-SET core_rcv_replies = $opensips_core_rcv_replies
-END
-BEGIN opensips.core_fwd $1
-SET core_fwd_requests = $opensips_core_fwd_requests
-SET core_fwd_replies = $opensips_core_fwd_replies
-END
-BEGIN opensips.core_drop $1
-SET core_drop_requests = $opensips_core_drop_requests
-SET core_drop_replies = $opensips_core_drop_replies
-END
-BEGIN opensips.core_err $1
-SET core_err_requests = $opensips_core_err_requests
-SET core_err_replies = $opensips_core_err_replies
-END
-BEGIN opensips.core_bad $1
-SET core_bad_URIs_rcvd = $opensips_core_bad_URIs_rcvd
-SET core_unsupported_methods = $opensips_core_unsupported_methods
-SET core_bad_msg_hdr = $opensips_core_bad_msg_hdr
-END
-BEGIN opensips.tm_replies $1
-SET tm_received_replies = $opensips_tm_received_replies
-SET tm_relayed_replies = $opensips_tm_relayed_replies
-SET tm_local_replies = $opensips_tm_local_replies
-END
-BEGIN opensips.transactions_status $1
-SET tm_2xx_transactions = $opensips_tm_2xx_transactions
-SET tm_3xx_transactions = $opensips_tm_3xx_transactions
-SET tm_4xx_transactions = $opensips_tm_4xx_transactions
-SET tm_5xx_transactions = $opensips_tm_5xx_transactions
-SET tm_6xx_transactions = $opensips_tm_6xx_transactions
-END
-BEGIN opensips.transactions_inuse $1
-SET tm_inuse_transactions = $opensips_tm_inuse_transactions
-END
-BEGIN opensips.sl_replies $1
-SET sl_1xx_replies = $opensips_sl_1xx_replies
-SET sl_2xx_replies = $opensips_sl_2xx_replies
-SET sl_3xx_replies = $opensips_sl_3xx_replies
-SET sl_4xx_replies = $opensips_sl_4xx_replies
-SET sl_5xx_replies = $opensips_sl_5xx_replies
-SET sl_6xx_replies = $opensips_sl_6xx_replies
-SET sl_sent_replies = $opensips_sl_sent_replies
-SET sl_sent_err_replies = $opensips_sl_sent_err_replies
-SET sl_received_ACKs = $opensips_sl_received_ACKs
-END
-BEGIN opensips.dialogs $1
-SET dialog_processed_dialogs = $opensips_dialog_processed_dialogs
-SET dialog_expired_dialogs = $opensips_dialog_expired_dialogs
-SET dialog_failed_dialogs = $opensips_dialog_failed_dialogs
-END
-BEGIN opensips.net_waiting $1
-SET net_waiting_udp = $opensips_net_waiting_udp
-SET net_waiting_tcp = $opensips_net_waiting_tcp
-END
-BEGIN opensips.uri_checks $1
-SET uri_positive_checks = $opensips_uri_positive_checks
-SET uri_negative_checks = $opensips_uri_negative_checks
-END
-BEGIN opensips.traces $1
-SET siptrace_traced_requests = $opensips_siptrace_traced_requests
-SET siptrace_traced_replies = $opensips_siptrace_traced_replies
-END
-BEGIN opensips.shmem $1
-SET shmem_total_size = $opensips_shmem_total_size
-SET shmem_used_size = $opensips_shmem_used_size
-SET shmem_real_used_size = $opensips_shmem_real_used_size
-SET shmem_max_used_size = $opensips_shmem_max_used_size
-SET shmem_free_size = $opensips_shmem_free_size
-END
-BEGIN opensips.shmem_fragments $1
-SET shmem_fragments = $opensips_shmem_fragments
-END
-VALUESEOF
-
- return 0
-}
diff --git a/charts.d/phpfpm.chart.sh b/charts.d/phpfpm.chart.sh
deleted file mode 100644
index a3c69b6f0..000000000
--- a/charts.d/phpfpm.chart.sh
+++ /dev/null
@@ -1,194 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-# Contributed by @safeie with PR #276
-
-# first, you need open php-fpm status in php-fpm.conf
-# second, you need add status location in nginx.conf
-# you can see, https://easyengine.io/tutorials/php/fpm-status-page/
-
-declare -A phpfpm_urls=()
-declare -A phpfpm_curl_opts=()
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-phpfpm_update_every=
-phpfpm_priority=60000
-
-declare -a phpfpm_response=()
-phpfpm_pool=""
-phpfpm_start_time=""
-phpfpm_start_since=0
-phpfpm_accepted_conn=0
-phpfpm_listen_queue=0
-phpfpm_max_listen_queue=0
-phpfpm_listen_queue_len=0
-phpfpm_idle_processes=0
-phpfpm_active_processes=0
-phpfpm_total_processes=0
-phpfpm_max_active_processes=0
-phpfpm_max_children_reached=0
-phpfpm_slow_requests=0
-phpfpm_get() {
- local opts="${1}" url="${2}"
-
- phpfpm_response=($(run curl -Ss ${opts} "${url}"))
- [ $? -ne 0 -o "${#phpfpm_response[@]}" -eq 0 ] && return 1
-
- if [[ "${phpfpm_response[0]}" != "pool:" \
- || "${phpfpm_response[2]}" != "process" \
- || "${phpfpm_response[5]}" != "start" \
- || "${phpfpm_response[12]}" != "accepted" \
- || "${phpfpm_response[15]}" != "listen" \
- || "${phpfpm_response[16]}" != "queue:" \
- || "${phpfpm_response[26]}" != "idle" \
- || "${phpfpm_response[29]}" != "active" \
- || "${phpfpm_response[32]}" != "total" \
- ]]
- then
- error "invalid response from phpfpm status server: ${phpfpm_response[*]}"
- return 1
- fi
-
- phpfpm_pool="${phpfpm_response[1]}"
- phpfpm_start_time="${phpfpm_response[7]} ${phpfpm_response[8]}"
- phpfpm_start_since="${phpfpm_response[11]}"
- phpfpm_accepted_conn="${phpfpm_response[14]}"
- phpfpm_listen_queue="${phpfpm_response[17]}"
- phpfpm_max_listen_queue="${phpfpm_response[21]}"
- phpfpm_listen_queue_len="${phpfpm_response[25]}"
- phpfpm_idle_processes="${phpfpm_response[28]}"
- phpfpm_active_processes="${phpfpm_response[31]}"
- phpfpm_total_processes="${phpfpm_response[34]}"
- phpfpm_max_active_processes="${phpfpm_response[38]}"
- phpfpm_max_children_reached="${phpfpm_response[42]}"
- if [ "${phpfpm_response[43]}" == "slow" ]
- then
- phpfpm_slow_requests="${phpfpm_response[45]}"
- else
- phpfpm_slow_requests="-1"
- fi
-
- if [[ -z "${phpfpm_pool}" \
- || -z "${phpfpm_start_time}" \
- || -z "${phpfpm_start_since}" \
- || -z "${phpfpm_accepted_conn}" \
- || -z "${phpfpm_listen_queue}" \
- || -z "${phpfpm_max_listen_queue}" \
- || -z "${phpfpm_listen_queue_len}" \
- || -z "${phpfpm_idle_processes}" \
- || -z "${phpfpm_active_processes}" \
- || -z "${phpfpm_total_processes}" \
- || -z "${phpfpm_max_active_processes}" \
- || -z "${phpfpm_max_children_reached}" \
- ]]
- then
- error "empty values got from phpfpm status server: ${phpfpm_response[*]}"
- return 1
- fi
-
- return 0
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-phpfpm_check() {
- if [ ${#phpfpm_urls[@]} -eq 0 ]; then
- phpfpm_urls[local]="http://localhost/status"
- fi
-
- local m
- for m in "${!phpfpm_urls[@]}"
- do
- phpfpm_get "${phpfpm_curl_opts[$m]}" "${phpfpm_urls[$m]}"
- if [ $? -ne 0 ]; then
- error "cannot find status on URL '${phpfpm_url[$m]}'. Please set phpfpm_urls[$m]='http://localhost/status' in $confd/phpfpm.conf"
- unset phpfpm_urls[$m]
- continue
- fi
- done
-
- if [ ${#phpfpm_urls[@]} -eq 0 ]; then
- error "no phpfpm servers found. Please set phpfpm_urls[name]='url' to whatever needed to get status to the phpfpm server, in $confd/phpfpm.conf"
- return 1
- fi
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- return 0
-}
-
-# _create is called once, to create the charts
-phpfpm_create() {
- local m
- for m in "${!phpfpm_urls[@]}"
- do
- cat <<EOF
-CHART phpfpm_$m.connections '' "PHP-FPM Active Connections" "connections" phpfpm phpfpm.connections line $((phpfpm_priority + 1)) $phpfpm_update_every
-DIMENSION active '' absolute 1 1
-DIMENSION maxActive 'max active' absolute 1 1
-DIMENSION idle '' absolute 1 1
-
-CHART phpfpm_$m.requests '' "PHP-FPM Requests" "requests/s" phpfpm phpfpm.requests line $((phpfpm_priority + 2)) $phpfpm_update_every
-DIMENSION requests '' incremental 1 1
-
-CHART phpfpm_$m.performance '' "PHP-FPM Performance" "status" phpfpm phpfpm.performance line $((phpfpm_priority + 3)) $phpfpm_update_every
-DIMENSION reached 'max children reached' absolute 1 1
-EOF
- if [ $((phpfpm_slow_requests)) -ne -1 ]
- then
- echo "DIMENSION slow 'slow requests' absolute 1 1"
- fi
- done
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-phpfpm_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- local m
- for m in "${!phpfpm_urls[@]}"
- do
- phpfpm_get "${phpfpm_curl_opts[$m]}" "${phpfpm_urls[$m]}"
- if [ $? -ne 0 ]; then
- continue
- fi
-
- # write the result of the work.
- cat <<EOF
-BEGIN phpfpm_$m.connections $1
-SET active = $((phpfpm_active_processes))
-SET maxActive = $((phpfpm_max_active_processes))
-SET idle = $((phpfpm_idle_processes))
-END
-BEGIN phpfpm_$m.requests $1
-SET requests = $((phpfpm_accepted_conn))
-END
-BEGIN phpfpm_$m.performance $1
-SET reached = $((phpfpm_max_children_reached))
-EOF
- if [ $((phpfpm_slow_requests)) -ne -1 ]
- then
- echo "SET slow = $((phpfpm_slow_requests))"
- fi
- echo "END"
- done
-
- return 0
-}
-
-phpfpm_check
-phpfpm_create
-phpfpm_update
diff --git a/charts.d/postfix.chart.sh b/charts.d/postfix.chart.sh
deleted file mode 100644
index 85604fcbe..000000000
--- a/charts.d/postfix.chart.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# the postqueue command
-# if empty, it will use the one found in the system path
-postfix_postqueue=
-
-# how frequently to collect queue size
-postfix_update_every=15
-
-postfix_priority=60000
-
-postfix_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- # try to find the postqueue executable
- if [ -z "$postfix_postqueue" -o ! -x "$postfix_postqueue" ]
- then
- postfix_postqueue="$(which postqueue 2>/dev/null || command -v postqueue 2>/dev/null)"
- fi
-
- if [ -z "$postfix_postqueue" -o ! -x "$postfix_postqueue" ]
- then
- error "cannot find postqueue. Please set 'postfix_postqueue=/path/to/postqueue' in $confd/postfix.conf"
- return 1
- fi
-
- return 0
-}
-
-postfix_create() {
-cat <<EOF
-CHART postfix_local.qemails '' "Postfix Queue Emails" "emails" queue postfix.queued.emails line $((postfix_priority + 1)) $postfix_update_every
-DIMENSION emails '' absolute 1 1
-CHART postfix_local.qsize '' "Postfix Queue Emails Size" "emails size in KB" queue postfix.queued.size area $((postfix_priority + 2)) $postfix_update_every
-DIMENSION size '' absolute 1 1
-EOF
-
- return 0
-}
-
-postfix_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- # 1. execute postqueue -p
- # 2. get the line that begins with --
- # 3. match the 2 numbers on the line and output 2 lines like these:
- # local postfix_q_size=NUMBER
- # local postfix_q_emails=NUMBER
- # 4. then execute this a script with the eval
- #
- # be very carefull with eval:
- # prepare the script and always egrep at the end the lines that are usefull, so that
- # even if something goes wrong, no other code can be executed
- postfix_q_emails=0
- postfix_q_size=0
-
- eval "$(run $postfix_postqueue -p |\
- grep "^--" |\
- sed -e "s/-- \([0-9]\+\) Kbytes in \([0-9]\+\) Requests.$/local postfix_q_size=\1\nlocal postfix_q_emails=\2/g" |\
- egrep "^local postfix_q_(emails|size)=[0-9]+$")"
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN postfix_local.qemails $1
-SET emails = $postfix_q_emails
-END
-BEGIN postfix_local.qsize $1
-SET size = $postfix_q_size
-END
-VALUESEOF
-
- return 0
-}
diff --git a/charts.d/sensors.chart.sh b/charts.d/sensors.chart.sh
deleted file mode 100644
index f21248da1..000000000
--- a/charts.d/sensors.chart.sh
+++ /dev/null
@@ -1,250 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-# sensors docs
-# https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface
-
-# if this chart is called X.chart.sh, then all functions and global variables
-# must start with X_
-
-# the directory the kernel keeps sensor data
-sensors_sys_dir="${NETDATA_HOST_PREFIX}/sys/devices"
-
-# how deep in the tree to check for sensor data
-sensors_sys_depth=10
-
-# if set to 1, the script will overwrite internal
-# script functions with code generated ones
-# leave to 1, is faster
-sensors_source_update=1
-
-# how frequently to collect sensor data
-# the default is to collect it at every iteration of charts.d
-sensors_update_every=
-
-sensors_priority=90000
-
-declare -A sensors_excluded=()
-
-sensors_find_all_files() {
- find $1 -maxdepth $sensors_sys_depth -name \*_input -o -name temp 2>/dev/null
-}
-
-sensors_find_all_dirs() {
- sensors_find_all_files $1 | while read
- do
- dirname $REPLY
- done | sort -u
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-sensors_check() {
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- [ -z "$( sensors_find_all_files $sensors_sys_dir )" ] && error "no sensors found in '$sensors_sys_dir'." && return 1
- return 0
-}
-
-sensors_check_files() {
- # we only need sensors that report a non-zero value
- # also remove not needed sensors
-
- local f= v= excluded=
- for f in $*
- do
- [ ! -f "$f" ] && continue
- for ex in ${sensors_excluded[@]}; do
- [[ $f =~ .*$ex$ ]] && excluded='1' && break
- done
-
- [ "$excluded" != "1" ] && v="$( cat $f )" || v=0
- v=$(( v + 1 - 1 ))
- [ $v -ne 0 ] && echo "$f" && continue
- excluded=
-
- error "$f gives zero values"
- done
-}
-
-sensors_check_temp_type() {
- # valid temp types are 1 to 6
- # disabled sensors have the value 0
-
- local f= t= v=
- for f in $*
- do
- t=$( echo $f | sed "s|_input$|_type|g" )
- [ "$f" = "$t" ] && echo "$f" && continue
- [ ! -f "$t" ] && echo "$f" && continue
-
- v="$( cat $t )"
- v=$(( v + 1 - 1 ))
- [ $v -ne 0 ] && echo "$f" && continue
-
- error "$f is disabled"
- done
-}
-
-# _create is called once, to create the charts
-sensors_create() {
- local path= dir= name= x= file= lfile= labelname= labelid= device= subsystem= id= type= mode= files= multiplier= divisor=
-
- # we create a script with the source of the
- # sensors_update() function
- # - the highest speed we can achieve -
- [ $sensors_source_update -eq 1 ] && echo >$TMP_DIR/sensors.sh "sensors_update() {"
-
- for path in $( sensors_find_all_dirs $sensors_sys_dir | sort -u )
- do
- dir=$( basename $path )
- device=
- subsystem=
- id=
- type=
- name=
-
- [ -h $path/device ] && device=$( readlink -f $path/device )
- [ ! -z "$device" ] && device=$( basename $device )
- [ -z "$device" ] && device="$dir"
-
- [ -h $path/subsystem ] && subsystem=$( readlink -f $path/subsystem )
- [ ! -z "$subsystem" ] && subsystem=$( basename $subsystem )
- [ -z "$subsystem" ] && subsystem="$dir"
-
- [ -f $path/name ] && name=$( cat $path/name )
- [ -z "$name" ] && name="$dir"
-
- [ -f $path/type ] && type=$( cat $path/type )
- [ -z "$type" ] && type="$dir"
-
- id="$( fixid "$device.$subsystem.$dir" )"
-
- debug "path='$path', dir='$dir', device='$device', subsystem='$subsystem', id='$id', name='$name'"
-
- for mode in temperature voltage fans power current energy humidity
- do
- files=
- multiplier=1
- divisor=1
- algorithm="absolute"
-
- case $mode in
- temperature)
- files="$( ls $path/temp*_input 2>/dev/null; ls $path/temp 2>/dev/null )"
- files="$( sensors_check_files $files )"
- files="$( sensors_check_temp_type $files )"
- [ -z "$files" ] && continue
- echo "CHART sensors.temp_$id '' '$name Temperature' 'Celsius' 'temperature' 'sensors.temp' line $((sensors_priority + 1)) $sensors_update_every"
- echo >>$TMP_DIR/sensors.sh "echo \"BEGIN sensors.temp_$id \$1\""
- divisor=1000
- ;;
-
- voltage)
- files="$( ls $path/in*_input 2>/dev/null )"
- files="$( sensors_check_files $files )"
- [ -z "$files" ] && continue
- echo "CHART sensors.volt_$id '' '$name Voltage' 'Volts' 'voltage' 'sensors.volt' line $((sensors_priority + 2)) $sensors_update_every"
- echo >>$TMP_DIR/sensors.sh "echo \"BEGIN sensors.volt_$id \$1\""
- divisor=1000
- ;;
-
- current)
- files="$( ls $path/curr*_input 2>/dev/null )"
- files="$( sensors_check_files $files )"
- [ -z "$files" ] && continue
- echo "CHART sensors.curr_$id '' '$name Current' 'Ampere' 'current' 'sensors.curr' line $((sensors_priority + 3)) $sensors_update_every"
- echo >>$TMP_DIR/sensors.sh "echo \"BEGIN sensors.curr_$id \$1\""
- divisor=1000
- ;;
-
- power)
- files="$( ls $path/power*_input 2>/dev/null )"
- files="$( sensors_check_files $files )"
- [ -z "$files" ] && continue
- echo "CHART sensors.power_$id '' '$name Power' 'Watt' 'power' 'sensors.power' line $((sensors_priority + 4)) $sensors_update_every"
- echo >>$TMP_DIR/sensors.sh "echo \"BEGIN sensors.power_$id \$1\""
- divisor=1000000
- ;;
-
- fans)
- files="$( ls $path/fan*_input 2>/dev/null )"
- files="$( sensors_check_files $files )"
- [ -z "$files" ] && continue
- echo "CHART sensors.fan_$id '' '$name Fans Speed' 'Rotations / Minute' 'fans' 'sensors.fans' line $((sensors_priority + 5)) $sensors_update_every"
- echo >>$TMP_DIR/sensors.sh "echo \"BEGIN sensors.fan_$id \$1\""
- ;;
-
- energy)
- files="$( ls $path/energy*_input 2>/dev/null )"
- files="$( sensors_check_files $files )"
- [ -z "$files" ] && continue
- echo "CHART sensors.energy_$id '' '$name Energy' 'Joule' 'energy' 'sensors.energy' areastack $((sensors_priority + 6)) $sensors_update_every"
- echo >>$TMP_DIR/sensors.sh "echo \"BEGIN sensors.energy_$id \$1\""
- algorithm="incremental"
- divisor=1000000
- ;;
-
- humidity)
- files="$( ls $path/humidity*_input 2>/dev/null )"
- files="$( sensors_check_files $files )"
- [ -z "$files" ] && continue
- echo "CHART sensors.humidity_$id '' '$name Humidity' 'Percent' 'humidity' 'sensors.humidity' line $((sensors_priority + 7)) $sensors_update_every"
- echo >>$TMP_DIR/sensors.sh "echo \"BEGIN sensors.humidity_$id \$1\""
- divisor=1000
- ;;
-
- *)
- continue
- ;;
- esac
-
- for x in $files
- do
- file="$x"
- fid="$( fixid "$file" )"
- lfile="$( basename $file | sed "s|_input$|_label|g" )"
- labelname="$( basename $file | sed "s|_input$||g" )"
-
- if [ ! "$path/$lfile" = "$file" -a -f "$path/$lfile" ]
- then
- labelname="$( cat "$path/$lfile" )"
- fi
-
- echo "DIMENSION $fid '$labelname' $algorithm $multiplier $divisor"
- echo >>$TMP_DIR/sensors.sh "echo \"SET $fid = \"\$(< $file )"
- done
-
- echo >>$TMP_DIR/sensors.sh "echo END"
- done
- done
-
- [ $sensors_source_update -eq 1 ] && echo >>$TMP_DIR/sensors.sh "}"
-
- # ok, load the function sensors_update() we created
- [ $sensors_source_update -eq 1 ] && . $TMP_DIR/sensors.sh
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-sensors_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- [ $sensors_source_update -eq 0 ] && . $TMP_DIR/sensors.sh $1
-
- return 0
-}
-
diff --git a/charts.d/squid.chart.sh b/charts.d/squid.chart.sh
deleted file mode 100644
index 2c19c35d5..000000000
--- a/charts.d/squid.chart.sh
+++ /dev/null
@@ -1,144 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-
-squid_host=
-squid_port=
-squid_url=
-squid_timeout=2
-squid_update_every=2
-squid_priority=60000
-
-squid_get_stats_internal() {
- local host="$1" port="$2" url="$3"
- run squidclient -h $host -p $port $url
-}
-
-squid_get_stats() {
- squid_get_stats_internal "$squid_host" "$squid_port" "$squid_url"
-}
-
-squid_autodetect() {
- local host="127.0.0.1" port url x
-
- for port in 3128 8080
- do
- for url in "cache_object://$host:$port/counters" "/squid-internal-mgr/counters"
- do
- x=$(squid_get_stats_internal "$host" "$port" "$url" | grep client_http.requests)
- if [ ! -z "$x" ]
- then
- squid_host="$host"
- squid_port="$port"
- squid_url="$url"
- debug "found squid at '$host:$port' with url '$url'"
- return 0
- fi
- done
- done
-
- error "cannot find squid running in localhost. Please set squid_url='url' and squid_host='IP' and squid_port='PORT' in $confd/squid.conf"
- return 1
-}
-
-squid_check() {
- require_cmd squidclient || return 1
- require_cmd sed || return 1
- require_cmd egrep || return 1
-
- if [ -z "$squid_host" -o -z "$squid_port" -o -z "$squid_url" ]
- then
- squid_autodetect || return 1
- fi
-
- # check once if the url works
- local x="$(squid_get_stats | grep client_http.requests)"
- if [ ! $? -eq 0 -o -z "$x" ]
- then
- error "cannot fetch URL '$squid_url' by connecting to $squid_host:$squid_port. Please set squid_url='url' and squid_host='host' and squid_port='port' in $confd/squid.conf"
- return 1
- fi
-
- return 0
-}
-
-squid_create() {
- # create the charts
- cat <<EOF
-CHART squid_local.clients_net '' "Squid Client Bandwidth" "kilobits / sec" clients squid.clients.net area $((squid_priority + 1)) $squid_update_every
-DIMENSION client_http_kbytes_in in incremental 8 1
-DIMENSION client_http_kbytes_out out incremental -8 1
-DIMENSION client_http_hit_kbytes_out hits incremental -8 1
-
-CHART squid_local.clients_requests '' "Squid Client Requests" "requests / sec" clients squid.clients.requests line $((squid_priority + 3)) $squid_update_every
-DIMENSION client_http_requests requests incremental 1 1
-DIMENSION client_http_hits hits incremental 1 1
-DIMENSION client_http_errors errors incremental -1 1
-
-CHART squid_local.servers_net '' "Squid Server Bandwidth" "kilobits / sec" servers squid.servers.net area $((squid_priority + 2)) $squid_update_every
-DIMENSION server_all_kbytes_in in incremental 8 1
-DIMENSION server_all_kbytes_out out incremental -8 1
-
-CHART squid_local.servers_requests '' "Squid Server Requests" "requests / sec" servers squid.servers.requests line $((squid_priority + 4)) $squid_update_every
-DIMENSION server_all_requests requests incremental 1 1
-DIMENSION server_all_errors errors incremental -1 1
-EOF
-
- return 0
-}
-
-
-squid_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- # 1. get the counters page from squid
- # 2. sed to remove spaces; replace . with _; remove spaces around =; prepend each line with: local squid_
- # 3. egrep lines starting with:
- # local squid_client_http_ then one or more of these a-z 0-9 _ then = and one of more of 0-9
- # local squid_server_all_ then one or more of these a-z 0-9 _ then = and one of more of 0-9
- # 4. then execute this as a script with the eval
- #
- # be very carefull with eval:
- # prepare the script and always grep at the end the lines that are usefull, so that
- # even if something goes wrong, no other code can be executed
-
- eval "$(squid_get_stats |\
- sed -e "s/ \+/ /g" -e "s/\./_/g" -e "s/^\([a-z0-9_]\+\) *= *\([0-9]\+\)$/local squid_\1=\2/g" |\
- egrep "^local squid_(client_http|server_all)_[a-z0-9_]+=[0-9]+$")"
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN squid_local.clients_net $1
-SET client_http_kbytes_in = $squid_client_http_kbytes_in
-SET client_http_kbytes_out = $squid_client_http_kbytes_out
-SET client_http_hit_kbytes_out = $squid_client_http_hit_kbytes_out
-END
-
-BEGIN squid_local.clients_requests $1
-SET client_http_requests = $squid_client_http_requests
-SET client_http_hits = $squid_client_http_hits
-SET client_http_errors = $squid_client_http_errors
-END
-
-BEGIN squid_local.servers_net $1
-SET server_all_kbytes_in = $squid_server_all_kbytes_in
-SET server_all_kbytes_out = $squid_server_all_kbytes_out
-END
-
-BEGIN squid_local.servers_requests $1
-SET server_all_requests = $squid_server_all_requests
-SET server_all_errors = $squid_server_all_errors
-END
-VALUESEOF
-
- return 0
-}
diff --git a/charts.d/tomcat.chart.sh b/charts.d/tomcat.chart.sh
deleted file mode 100644
index 4ea6ae683..000000000
--- a/charts.d/tomcat.chart.sh
+++ /dev/null
@@ -1,147 +0,0 @@
-# no need for shebang - this file is loaded from charts.d.plugin
-
-# netdata
-# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
-# GPL v3+
-#
-# Contributed by @jgeromero with PR #277
-
-# Description: Tomcat netdata charts.d plugin
-# Author: Jorge Romero
-
-# the URL to download tomcat status info
-# usually http://localhost:8080/manager/status?XML=true
-tomcat_url=""
-tomcat_curl_opts=""
-
-# set tomcat username/password here
-tomcat_user=""
-tomcat_password=""
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-tomcat_update_every=
-
-tomcat_priority=60000
-
-# convert tomcat floating point values
-# to integer using this multiplier
-# this only affects precision - the values
-# will be in the proper units
-tomcat_decimal_detail=1000000
-
-# used by volume chart to convert bytes to KB
-tomcat_decimal_KB_detail=1000
-
-tomcat_check() {
-
- require_cmd xmlstarlet || return 1
-
-
- # check if url, username, passwords are set
- if [ -z "${tomcat_url}" ]; then
- error "tomcat url is unset or set to the empty string"
- return 1
- fi
- if [ -z "${tomcat_user}" ]; then
- # check backwards compatibility
- if [ -z "${tomcatUser}" ]; then
- error "tomcat user is unset or set to the empty string"
- return 1
- else
- tomcat_user="${tomcatUser}"
- fi
- fi
- if [ -z "${tomcat_password}" ]; then
- # check backwards compatibility
- if [ -z "${tomcatPassword}" ]; then
- error "tomcat password is unset or set to the empty string"
- return 1
- else
- tomcat_password="${tomcatPassword}"
- fi
- fi
-
- # check if we can get to tomcat's status page
- tomcat_get
- if [ $? -ne 0 ]
- then
- error "cannot get to status page on URL '${tomcat_url}'. Please make sure tomcat url, username and password are correct."
- return 1
- fi
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- return 0
-}
-
-tomcat_get() {
- # collect tomcat values
- tomcat_port="$(IFS=/ read -ra a <<< "$tomcat_url"; hostport=${a[2]}; echo "${hostport#*:}")"
- mapfile -t lines < <(run curl -u "$tomcat_user":"$tomcat_password" -Ss ${tomcat_curl_opts} "$tomcat_url" |\
- run xmlstarlet sel \
- -t -m "/status/jvm/memory" -v @free \
- -n -m "/status/connector[@name='\"http-bio-$tomcat_port\"']/threadInfo" -v @currentThreadCount \
- -n -v @currentThreadsBusy \
- -n -m "/status/connector[@name='\"http-bio-$tomcat_port\"']/requestInfo" -v @requestCount \
- -n -v @bytesSent -n -)
-
- tomcat_jvm_freememory="${lines[0]}"
- tomcat_threads="${lines[1]}"
- tomcat_threads_busy="${lines[2]}"
- tomcat_accesses="${lines[3]}"
- tomcat_volume="${lines[4]}"
-
- return 0
-}
-
-# _create is called once, to create the charts
-tomcat_create() {
- cat <<EOF
-CHART tomcat.accesses '' "tomcat requests" "requests/s" statistics tomcat.accesses area $((tomcat_priority + 8)) $tomcat_update_every
-DIMENSION accesses '' incremental
-CHART tomcat.volume '' "tomcat volume" "KB/s" volume tomcat.volume area $((tomcat_priority + 5)) $tomcat_update_every
-DIMENSION volume '' incremental divisor ${tomcat_decimal_KB_detail}
-CHART tomcat.threads '' "tomcat threads" "current threads" statistics tomcat.threads line $((tomcat_priority + 6)) $tomcat_update_every
-DIMENSION current '' absolute 1
-DIMENSION busy '' absolute 1
-CHART tomcat.jvm '' "JVM Free Memory" "MB" statistics tomcat.jvm area $((tomcat_priority + 8)) $tomcat_update_every
-DIMENSION jvm '' absolute 1 ${tomcat_decimal_detail}
-EOF
- return 0
-}
-
-# _update is called continuously, to collect the values
-tomcat_update() {
- local reqs net
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- tomcat_get || return 1
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN tomcat.accesses $1
-SET accesses = $((tomcat_accesses))
-END
-BEGIN tomcat.volume $1
-SET volume = $((tomcat_volume))
-END
-BEGIN tomcat.threads $1
-SET current = $((tomcat_threads))
-SET busy = $((tomcat_threads_busy))
-END
-BEGIN tomcat.jvm $1
-SET jvm = $((tomcat_jvm_freememory))
-END
-VALUESEOF
-
- return 0
-}