summaryrefslogtreecommitdiffstats
path: root/collectors/freeipmi.plugin/freeipmi_plugin.c
AgeCommit message (Collapse)Author
2024-02-08Move collectors/ under src/ (#16965)vkalintiris
2024-02-02add support for the info parameter to all external plugin functions (#16915)Costa Tsaousis
* add support for the info parameter to all functions * add SO_CLOEXEC to inbound connections * network-connections aggregated view for servers with dozens of thousands of connections * optimized /proc/net files parsing; aggregated view of network-connections returns sorted sockets to avoid dancing visualization * local-sockets is now using aral * lower the payload returned by network-connections
2024-01-29New Permissions System (#16837)Costa Tsaousis
* wip of migrating to bitmap permissions * replace role with bitmapped permissions * formatting permissions using macros * accept view and edit permissions for all dynamic configuration * work on older compilers * parse the header in hex * agreed permissions updates * map permissions to old roles * new permissions management * fix function rename * build libdatachannel when enabled - currently for code maintainance * dyncfg now keeps 2 sets of statuses, to keep track of what happens to dyncfg and what actually happens with the plugin * complete the additions of jobs and solve unittests * fix renumbering of ACL bits * processes function shows the cmdline based on permissions and the presence of the sensitive data permission * now the agent returns 412 when authorization is missing, 403 when authorization exists but permissions are not enough, 451 when access control list prevents the user from accessing the dashboard * enable cmdline on processes with thhe HTTP_ACCESS_VIEW_AGENT_CONFIG permission * by default functions require anonymous-data access * fix compilation on debian * fix left-over renamed define * updated schema for alerts * updated permissions * require a name when loading json payloads, if the name is not provided by dyncfg
2024-01-23DYNCFG: dynamically configured alerts (#16779)Costa Tsaousis
* cleanup alerts * fix references * fix references * fix references * load alerts once and apply them to each node * simplify health_create_alarm_entry() * Compile without warnings with compiler flags: -Wall -Wextra -Wformat=2 -Wshadow -Wno-format-nonliteral -Winit-self * code re-organization and cleanup * generate patterns when applying prototypes; give unique dyncfg names to all alerts * eval expressions keep the source and the parsed_as as STRING pointers * renamed host to node in dyncfg ids * renamed host to node in dyncfg ids * add all cloud roles to the list of parsed X-Netdata-Role header and also default to member access level * working functionality * code re-organization: moved health event-loop to a new file, moved health globals to health.c * rrdcalctemplate is removed; alert_cfg is removed; foreach dimension is removed; RRDCALCs are now instanciated only when they are linked to RRDSETs * dyncfg alert prototypes initialization for alerts * health dyncfg split to separate file * cleanup not-needed code * normalize matches between parsing and json * also detect !* for disabled alerts * dyncfg capability disabled * Store alert config part1 * Add rrdlabels_common_count * wip health variables lookup without indexes * Improve rrdlabels_common_count by reusing rrdlabels_find_label_with_key_unsafe with an additional parameter * working variables with runtime lookup * working variables with runtime lookup * delete rrddimvar and rrdfamily index * remove rrdsetvar; now all variables are in RRDVARs inside hosts and charts * added /api/v1/variable that resolves a variable the same way alerts do * remove rrdcalc from eval * remove debug code * remove duplicate assignment * Fix memory leak * all alert variables are now handled by alert_variable_lookup() and EVAL is now independent of alerts * hide all internal structures of EVAL * Enable -Wformat flag Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> * Adjust binding for calculation, warning, critical * Remove unused macro * Update config hash id * use the right info and summary in alerts log * use synchronous queries for alerts * Handle cases when config_hash_id is missing from health_log * remove deadlock from health worker * parsing to json payload for health alert prototypes * cleaner parsing and avoiding memory leaks in case of duplicate members in json * fix left-over rename of function * Keep original lookup field to send to the cloud Cleanup / rename function to store config Remove unused DEFINEs, functions * Use ac->lookup * link jobs to the host when the template is registered; do not accept running a function without a host * full dyncfg support for health alerts, except action TEST * working dyncfg additions, updates, removals * fixed missing source, wrong status updates * add alerts by type, component, classification, recipient and module at the /api/v2/alerts endpoint * fix dyncfg unittest * rename functions * generalize the json-c parser macros and move them to libnetdata * report progress when enabling and disabling dyncfg templates * moved rrdcalc and rrdvar to health * update alarms * added schema for alerts; separated alert_action_options from rrdr_options; restructured the json payload for alerts * enable parsed json alerts; allow sending back accepted but disabled * added format_version for alerts payload; enables/disables status now is also inheritted by the status of the rules; fixed variable names in json output * remove the RRDHOST pointer from DYNCFG * Fix command field submitted to the cloud * do not send updates to creation requests, for DYNCFG jobs --------- Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> Co-authored-by: Tasos Katsoulas <tasos@netdata.cloud> Co-authored-by: ilyam8 <ilya@netdata.cloud>
2024-01-11dyncfg v2 (#16702)Costa Tsaousis
* split rrdfunctions streaming and progress * simplified internal inline functions API * split rrdfunctions inflight management * split rrd functions exporters * renames * base dyncfg structure * config pluginsd * intercept dyncfg function calls * loading and saving of dyncfg metadata and data * save metadata and payload to a single file; added code to update the plugins with jobs and saved configs * basic working unit test * added payload to functions execution * removed old dyncfg code that is not needed any more * more cleanup * cleanup sender for functions with payload * dyncfg functions are not exposed as functions * remaining work to avoid indexing the \0 terminating character in dictionary keys * added back old dyncfg plugins.d commands as noop, to allow plugins continue working * working api; working streaming; * updated plugins.d documentation * aclk and http api requests share the same header parsing logic * added source type internal * fixed crashes * added god mode for tests * fixes * fixed messages * save host machine guids to configs * cleaner manipulation of supported commands * the functions event loop for external plugins can now process dyncfg requests * unified internal and external plugins dyncfg API * Netdata serves schema requests from /etc/netdata/schema.d and /var/lib/netdata/conf.d/schema.d * cleanup and various fixes; fixed bug in previous dyncfg implementation on streaming that was sending the paylod in a way that allowed other streaming commands to be multiplexed * internals go to a separate header file * fix duplicate ACLK requests sent by aclk queue mechanism * use fstat instead of stat * working api * plugin actions renamed to create and delete; dyncfg files are removed only from user actions * prevent deadlock by using the react callback * fix for string_strndupz() * better dyncfg unittests * more tests at the unittests * properly detect dyncfg functions * hide config functions from the UI * tree response improvements * send the initial update with payload * determine tty using stdout, not stderr * changes to statuses, cleanup and the code to bring all business logic into interception * do not crash when the status is empty * functions now propagate the source of the requests to plugins * avoid warning about unused functions * in the count at items for attention, do not count the orphan entries * save source into dyncfg * make the list null terminated * fixed invalid comparison * prevent memory leak on duplicated headers; log x-forwarded-for * more unit tests * added dyncfg unittests into the default unittests * more unit tests and fixes * more unit tests and fixes * fix dictionary unittests * config functions require admin access
2023-12-15Queries Progress (#16574)Costa Tsaousis
* track the progress of queries * add query_progress in libnetdata Makefile.am * add acl, response size and response code to the tracking * define the required functions * fix the last commit * added /api/v2/progress?transaction=ID to report the progress of queries * added function to report netdata-queries * track hashtable additions * when resusing a transaction, maintain the counter * keep track of linked and indexing * added X-Forwarded-Host and X-Forwarded-For to logs. X-Forwarded-For is also added in progress tracking * report compact uuids to match logs; register the actual duration of the transaction * added rowOptions to function; now web_client keeps track if it tracks progress or not * add http request method to progress * add tags per function; /api/vX/functions is now not protected * compact the sanitization array * split pluginsd_parser into multiple files * cleanup keyword definitions * code cleanup * extracted rrd_collector to separate files * added http access level to functions * renamed access "all" to "any" * implemented optional protection on functions * add priority to functions, to allow the UI select the best function (lower priority) when the user has not selected a function * added progress report from the plugins to netdata and from children to parents - untested * added progress reporting in systemd-journal * query timeout is now handled by evloop for external plugins * propagate progress reports to children and plugins * fix codeql warning * adapt to cmake * minor changes * extend function timeout when progress is received; added streaming capability to propagate progress reports to parents and send progress requests to children * revert change in dictionary.h * add log when access level is invalid * update access level of functions * added logs when processing progress updates * log when the deferred response is too big * comment out sender progress to find the issue * added missing newline in streaming progress reports * propogate progress reports to functions * fix logs
2023-11-30convert some error messages to info (#16508)Ilya Mashchenko
2023-11-22New logging layer (#16357)Costa Tsaousis
* cleanup of logging - wip * first working iteration * add errno annotator * replace old logging functions with netdata_logger() * cleanup * update error_limit * fix remanining error_limit references * work on fatal() * started working on structured logs * full cleanup * default logging to files; fix all plugins initialization * fix formatting of numbers * cleanup and reorg * fix coverity issues * cleanup obsolete code * fix formatting of numbers * fix log rotation * fix for older systems * add detection of systemd journal via stderr * finished on access.log * remove left-over transport * do not add empty fields to the logs * journal get compact uuids; X-Transaction-ID header is added in web responses * allow compiling on systems without memfd sealing * added libnetdata/uuid directory * move datetime formatters to libnetdata * add missing files * link the makefiles in libnetdata * added uuid_parse_flexi() to parse UUIDs with and without hyphens; the web server now read X-Transaction-ID and uses it for functions and web responses * added stream receiver, sender, proc plugin and pluginsd log stack * iso8601 advanced usage; line_splitter module in libnetdata; code cleanup * add message ids to streaming inbound and outbound connections * cleanup line_splitter between lines to avoid logging garbage; when killing children, kill them with SIGABRT if internal checks is enabled * send SIGABRT to external plugins only if we are not shutting down * fix cross cleanup in pluginsd parser * fatal when there is a stack error in logs * compile netdata with -fexceptions * do not kill external plugins with SIGABRT * metasync info logs to debug level * added severity to logs * added json output; added options per log output; added documentation; fixed issues mentioned * allow memfd only on linux * moved journal low level functions to journal.c/h * move health logs to daemon.log with proper priorities * fixed a couple of bugs; health log in journal * updated docs * systemd-cat-native command to push structured logs to journal from the command line * fix makefiles * restored NETDATA_LOG_SEVERITY_LEVEL * fix makefiles * systemd-cat-native can also work as the logger of Netdata scripts * do not require a socket to systemd-journal to log-as-netdata * alarm notify logs in native format * properly compare log ids * fatals log alerts; alarm-notify.sh working * fix overflow warning * alarm-notify.sh now logs the request (command line) * anotate external plugins logs with the function cmd they run * added context, component and type to alarm-notify.sh; shell sanitization removes control character and characters that may be expanded by bash * reformatted alarm-notify logs * unify cgroup-network-helper.sh * added quotes around params * charts.d.plugin switched logging to journal native * quotes for logfmt * unify the status codes of streaming receivers and senders * alarm-notify: dont log anything, if there is nothing to do * all external plugins log to stderr when running outside netdata; alarm-notify now shows an error when notifications menthod are needed but are not available * migrate cgroup-name.sh to new logging * systemd-cat-native now supports messages with newlines * socket.c logs use priority * cleanup log field types * inherit the systemd set INVOCATION_ID if found * allow systemd-cat-native to send messages to a systemd-journal-remote URL * log2journal command that can convert structured logs to journal export format * various fixes and documentation of log2journal * updated log2journal docs * updated log2journal docs * updated documentation of fields * allow compiling without libcurl * do not use socket as format string * added version information to newly added tools * updated documentation and help messages * fix the namespace socket path * print errno with error * do not timeout * updated docs * updated docs * updated docs * log2journal updated docs and params * when talking to a remote journal, systemd-cat-native batches the messages * enable lz4 compression for systemd-cat-native when sending messages to a systemd-journal-remote * Revert "enable lz4 compression for systemd-cat-native when sending messages to a systemd-journal-remote" This reverts commit b079d53c11f6687cd64d804fdd7b24c0492bf245. * note about uncompressed traffic * log2journal: code reorg and cleanup to make modular * finished rewriting log2journal * more comments * rewriting rules support * increased limits * updated docs * updated docs * fix old log call * use journal only when stderr is connected to journal * update netdata.spec for libcurl, libpcre2 and log2journal * pcre2-devel * do not require pcre2 in centos < 8, amazonlinux < 2023, open suse * log2journal only on systems pcre2 is available * ignore log2journal in .gitignore * avoid log2journal on centos 7, amazonlinux 2 and opensuse * add pcre2-8 to static build * undo last commit * Bundle to static Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> * Add build deps for deb packages Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> * Add dependencies; build from source Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> * Test build for amazon linux and centos expect to fail for suse Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> * fix minor oversight Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> * Reorg code * Add the install from source (deps) as a TODO * Not enable the build on suse ecosystem Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> --------- Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> Co-authored-by: Tasos Katsoulas <tasos@netdata.cloud>
2023-11-09collectors/freeipmi: add ipmi-sensors function (#16363)Ilya Mashchenko
* add ipmi-sensors function * rename the fields to reflect the output of the ipmi-sensors * reorder columns * update help
2023-10-03external plugins: respect env NETDATA_LOG_SEVERITY_LEVEL (#16089)Ilya Mashchenko
* func to set global log sev level for ext plugins * apps: set log sev level * cgroup-network: set log sev level * cups: set log sev level * debugfs: set log sev level * freeipmi: set log sev level * nfacct: set log sev level * perf: set log sev level * slabinfo: set log sev level * xenstat: set log sev level * cgroup-name.sh: handle log sev level * alarm-notify.sh: handle log sev level * systemd-journal: set log sev e level * ebpf.plugin: set log sev level * ioping: handle log sev level * cgroup-network-helper.sh: handle log sev level * fix for cgroup-network-helper.sh
2023-09-19Fix compilation warnings (#16006)Stelios Fragkakis
2023-08-21Fix static build SSL (#15842)Costa Tsaousis
2023-08-01freeipmi change restart message to info (#15664)Ilya Mashchenko
2023-07-23freeipmi flush keepalive msgs (#15499)Ilya Mashchenko
2023-07-11format the sdr cache filenames (#15361)Costa Tsaousis
* format the sdr cache filenames * cleanup sdr cache file on startup * free the pattern * use flags to recreate the ipmi files * prevent newlines on tty * dont output newlines too frequently * Revert "dont output newlines too frequently" This reverts commit bbf26d79c9603de866d8575553a4c956c839c3fb. * detect tty
2023-07-11fix(freeipmi): set sensor state on every reading (#15360)Ilya Mashchenko
2023-07-11Fix coverity issues (#15345)Stelios Fragkakis
* sensor_name always has a value -- CID 395493: Control flow issues (DEADCODE) * Check fopen failure -- CID 395492: Null pointer dereferences (NULL_RETURNS) * CID 395491: Control flow issues (DEADCODE) * sel_count will be >=0 in this case -- CID 395490: Control flow issues (DEADCODE) * Memory leak -- CID 395487: Resource leaks (RESOURCE_LEAK)
2023-07-10multi-threaded version of freeipmi.plugin (#15327)Costa Tsaousis
* multi-threaded version of freeipmi.plugin * fix type check * debug info * debug info * updated should be smaller, not bigger * ignore sensors without name * variable data collection frequencies for sensors and sel; also respect the min data collection frequency * reorg and code cleanup * collect states even for unknown units and empty names * render all sensors * reset unknown state sensors * ignore sensors without name * added component fan * Update ipmi.conf * added label type * remove global state counters and chart * updated copyright notice * remove unused struct members * remove unused variable * added a log line everytime the plugin decides to exit to show what was wrong * reworked freeipmi for optimal performance * disabled debugging and fixed bug * added debug * added debug * added debug * removed debugging info * cleanup and final touches * let fan metrics be categorized by the component they are cooling * added plugin and module to charts * more component matches * code cleanup, sel should now be a lot faster * make sel min collection time 30 secs * more component matches; refreshed functions copied from freeipmi codebase * add keepalive to avoid parser read timeout during ipmi_detect_speed_secs * ipmi.fan_speed => ipmi.sensor_fan_speed * update metrics csv and readme * ok newline --------- Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
2023-06-07freeipmi: add availability status chart and alarm (#15151)Ilya Mashchenko
2023-06-05send EXIT before exiting in freeipmi and debugfs plugins (#15140)Ilya Mashchenko
* freeipmi: send EXIT before exiting * debugfs: send EXIT before exiting * fix missing }
2023-01-25Add Collector log (#14309)thiagoftsm
2022-05-09Workers utilization charts (#12807)Costa Tsaousis
* initial version of worker utilization * working example * without mutexes * monitoring DBENGINE, ACLKSYNC, WEB workers * added charts to monitor worker usage * fixed charts units * updated contexts * updated priorities * added documentation * converted threads to stacked chart * One query per query thread * Revert "One query per query thread" This reverts commit 6aeb391f5987c3c6ba2864b559fd7f0cd64b14d3. * fixed priority for web charts * read worker cpu utilization from proc * read workers cpu utilization via /proc/self/task/PID/stat, so that we have cpu utilization even when the jobs are too long to finish within our update_every frequency * disabled web server cpu utilization monitoring - it is now monitored by worker utilization * tight integration of worker utilization to web server * monitoring statsd worker threads * code cleanup and renaming of variables * contrained worker and statistics conflict to just one variable * support for rendering jobs per type * better priorities and removed the total jobs chart * added busy time in ms per job type * added proc.plugin monitoring, switch clock to MONOTONIC_RAW if available, global statistics now cleans up old worker threads * isolated worker thread families * added cgroups.plugin workers * remove unneeded dimensions when then expected worker is just one * plugins.d and streaming monitoring * rebased; support worker_is_busy() to be called one after another * added diskspace plugin monitoring * added tc.plugin monitoring * added ML threads monitoring * dont create dimensions and charts that are not needed * fix crash when job types are added on the fly * added timex and idlejitter plugins; collected heartbeat statistics; reworked heartbeat according to the POSIX * the right name is heartbeat for this chart * monitor streaming senders * added streaming senders to global stats * prevent division by zero * added clock_init() to external C plugins * added freebsd and macos plugins * added freebsd and macos to global statistics * dont use new as a variable; address compiler warnings on FreeBSD and MacOS * refactored contexts to be unique; added health threads monitoring Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com>
2022-01-18Use libnetdata/required_dummies.h in collectors. (#11971)vkalintiris
2021-05-24Remove unecessary relative paths when including headers. (#11124)vkalintiris
Currently, we add the repository's top-level dir in the compiler's header search path. This means that code in every top-level directory within the repo can include headers sibling top-level directories. This patch makes header inclusion consistent when it comes to files that are included from sibling top-level directories within the repo.
2021-03-03Add noauthcodecheck workaround flag to the freeipmi plugin (#10701)Vladimir Kobal
2021-02-25Remove unreachable #else directives in plugins. (#10523)vkalintiris
They are unreachable because Makefile.am will conditionally include the relevant source files iff the #ifdef's argument is defined in configure.ac.
2020-06-16Replace assert calls (#9349)Markos Fountoulakis
* Replace all assert() calls with the new fatal_assert() for proper logging.
2019-10-15fix(freeipmi): Update frequency config check (#7078)Steven Hartland
Fix the update frequency check for freeipmi which was warning that 5 was too frequent an it was setting it to 5.
2019-06-20[freeipmi] Remove id in sensor name when already unique (#6296)Adrien Mahieux
2019-03-04Have the debug option set the freeipmi debug flags (#5548)Chris Akritidis
2019-02-19Add driver-type option to the freeipmi plugin (#5384)Chris Akritidis
Permit processing of a `driver-type` directive, that `ipmimonitoring` uses to set the protocol version for outband (different host) or driver type for inband (same host) communications.
2019-02-02Remove warnings for send_statistics (#5316)Chris Akritidis
2019-01-27Anonymous statistics (#5113)Chris Akritidis
* Added shell and dashboard anonymous statistics * Check for environment var NETDATA_REGISTRY_UNIQUE_ID * Fix indentation * Removed health-cmdapi-test * docs/anonymous-statistics.md
2018-12-17Integrate patches from freeipmi and set set paramters (#4993)Florian Ströger
2018-12-02added more debug outpput to freeipmi (#4894)Costa Tsaousis
2018-11-21Fix broken links (#4700)Chris Akritidis
##### Summary <!--- Describe the change below, including rationale and design decisions --> Fixes #4672 The name of the branch is misleading, don't worry about it. Details on the fixes below. ##### Additional Information > Checking links in ./doc/Netdata-Security-and-Disclosure-Information.md > 1. [L13] 404 https://github.com/netdata/netdata/.github/ISSUE_TEMPLATE.md Fixed > Checking links in ./REDISTRIBUTED.md > 1. [L190] 404 https://github.com/netdata/netdata/blob/master/python.d/python_modules/urllib3/packages/six.py Fixed > Checking links in ./web/api/queries/ses/README.md > 1. [L53] https://en.wikipedia.org/wiki/Moving_average#exponential-moving-average](https://en.wikipedia.org/wiki/Moving_average bad URI(is not URI?): https://en.wikipedia.org/wiki/Moving_average#exponential-moving-average](https://en.wikipedia.org/wiki/Moving_average False, link works > Checking links in ./packaging/README.md > 1. [L52] 404 https://github.com/firehol/infrastructure/raw/master/doc/release.txt Fixed > Checking links in ./installer/README.md > 1. [L089] 404 https://github.com/netdata/netdata/blob/master/MAINTAINERS.md Fixed > 2. [L241] 404 http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/netdata-1.10.0.txz Fixed > Checking links in ./daemon/README.md > 1. [L080] 404 https://github.com/netdata/netdata/pull/403_ False. The URL is without the underscore > 2. [L116] 404 https://github.com/netdata/netdata/blob/master/LICENSE.md Fixed > Checking links in ./collectors/python.d.plugin/web_log/README.md > 1. [L026] 404 https://github.com/netdata/netdata/tree/master/conf.d/python.d Fixed > 2. [L030] 404 https://github.com/netdata/netdata/blob/master/conf.d/python.d/web_log.conf Fixed > 3. [L187] 404 https://github.com/netdata/netdata/blob/master/conf.d/health.d/web_log.conf Fixed > 4. [L200] 404 https://github.com/netdata/netdata/tree/master/conf.d/health.d Fixed > Checking links in ./collectors/python.d.plugin/apache/README.md > 1. [L52] 404 http://www.apache.org/server-status?auto Can't fix. Can't find a URL that will return server-status > Checking links in ./collectors/freeipmi.plugin/README.md > 1. [L090] 404 https://github.com/ktsaou/netdata/tree/master/plugins/freeipmi.plugin Fixed (also in the c code) > Checking links in ./CONTRIBUTORS.md > 1. [L013] http://producingoss.com/en/copyright-assignment.html Failed to open TCP connection to producingoss.com:80 (Connection refused - connect(2) for "producingoss.com" port 80) Fixed
2018-10-15modularized all source code (#4391)Costa Tsaousis
* modularized all external plugins * added README.md in plugins * fixed title * fixed typo * relative link to external plugins * external plugins configuration README * added plugins link * remove plugins link * plugin names are links * added links to external plugins * removed unecessary spacing * list to table * added language * fixed typo * list to table on internal plugins * added more documentation to internal plugins * moved python, node, and bash code and configs into the external plugins * added statsd README * fix bug with corrupting config.h every 2nd compilation * moved all config files together with their code * more documentation * diskspace info * fixed broken links in apps.plugin * added backends docs * updated plugins readme * move nc-backend.sh to backends * created daemon directory * moved all code outside src/ * fixed readme identation * renamed plugins.d.plugin to plugins.d * updated readme * removed linux- from linux plugins * updated readme * updated readme * updated readme * updated readme * updated readme * updated readme * fixed README.md links * fixed netdata tree links * updated codacy, codeclimate and lgtm excluded paths * update CMakeLists.txt * updated automake options at top directory * libnetdata slit into directories * updated READMEs * updated READMEs * updated ARL docs * updated ARL docs * moved /plugins to /collectors * moved all external plugins outside plugins.d * updated codacy, codeclimate, lgtm * updated README * updated url * updated readme * updated readme * updated readme * updated readme * moved api and web into webserver * web/api web/gui web/server * modularized webserver * removed web/gui/version.txt