Age | Commit message (Collapse) | Author |
|
* Use zlib provided by the system itself on macOS.
Searching for it with find_package() should always work on macOS since
it will find the system copy, which is always going to be there.
* Use native libuuid on macOS.
Much like zlib, macOS provides a libuuid implementation that (should)
work for us, so just use that instead of fighting with brew to find one.
* Don’t prepend system include paths.
* Skip Linux-specific checks on macOS.
This isn’t technically broken, but not making these checks makes
debugging of the build system easier.
* Minor CMake restructure.
|
|
This is required to work correctly in Homebrew, as building within
Homebrew does not allow using Homebrew commands, but does generally
provide a properly working pkg-config setup.
|
|
* extract dbengine compression to separate files
* added ZSTD support in dbengine
* automatically select best compression
* handle decompression errors
* eliminate fatals from compression algorithms; fallback to uncompressed pages if compression fails or generates bigger data
* have the unit test generate many data files
|
|
* renames in dbengine
* remove leftovers from memory mode save and map
* fix docs about 3 tiers by default
* split linked-lists, bitmaps and storage-points from libnetdata.h
|
|
* when a page cannot be acquired, repeat the call until it can or does not exist
* updated dbengine unittest
* Update dbengine-unittest.c
|
|
This silences warnings about macros that are provided by the
preprocessor/compiler itself being redefined.
This is needed to silence warnings about _FORTIFY_SOURCE being redefined,
which are being generated as we prefer a more aggressive value for it
than what most distros provide by default. Without this change, the
build is really noisy on many systems, and also fails when run with
`-Werror`.
It is also required long-term to allow for reproducible builds without
throwing errors, as they need to redefine a number of macros provided by
the preprocessor at build time.
|
|
|
|
* Prefer Protobuf’s own CMake config over CMake's FindProtobuf.
The FindProtobuf CMake module shipped by upstream CMake is broken for
Protobuf version 22.0 and newer because it does not correctly pull in
the new Abseil dependencies. Protobuf itself sometimes ships a CMake
Package Configuration module that _does_ work correctly, so use that in
preference to the Find module shipped with CMake.
Upstream bug reference: https://gitlab.kitware.com/cmake/cmake/-/issues/24321
* Properly handle protoc executable.
* Restructure to explicitly handle fallback case ourselves.
This allows proper handling of compatibility code in a way that actually
works for us without us needing to ship a special module to handle the
compatibility case.
* Switch to bundling protobuf via CMake instead of an external script.
* Fix handling of Protobuf inclusion.
- Add correct include directories for protoc.
- Skip installing protobuf when installing the agent.
* Drop spurious quotation marks.
* Properly fix generator expression for protoc include paths.
* Properly default to bundling protobuf in installer code.
* Disable ASAN in unit tests.
It doesn’t work with the modified protobuf handling and per discussion
with the team is non-critical.
* Change comment based on review.
* Revert "Disable ASAN in unit tests."
This reverts commit 6cb98b1b59c55d639d68694424b98e790ba2f5a7.
* Disable IPMI and NFACCT plugins for unit tests.
We don’t actually have any unit tests for them, and they cause issues
building reliably in the unit testing environment.
* Disable ASAN for Abseil and Protobuf when vendoring them.
* Switch to commit hashes for protobuf/abseil.
* Restructure to better encapsulate protobuf handling as it’s own module.
* Fix up bundled protobuf version handling.
Google has complicated rules for C++ build environment support, so we
really need to be checking compiler versions and not _just_ C++ standard
version.
* Fix warnings about invalid defines.
|
|
* split apps.plugin into multiple files
* move everything about pids to apps_proc_pids.c
* code cleanup and reorg for supporting MacOS
* fixed SIGFPE
* more cleanup
* completed split; added untested macos support
* enable apps everywhere
* macos fixes
* disable macos for the moment
* extern pagesize
* fix missing function
* added comments
* restored function
* working macos apps - not verified yet
* enable apps.plugin in MacOS
* added ppid
* parse cmdline
* fix scaling of cpu usage
* fixed cmdline parsing
* codacy fixes
* support uptime for FreeBSD and MacOS
* uptime in sec
* enable uptime charts on macos and freebsd
* disable vmsize on macos
|
|
|
|
* Integrate Go plugin with build system.
* Fix Debian packaging rules.
* Add FreeBSD support to Go toolchain handling.
* Add Go ldflags handling.
* Fix version detection when GCCGO is used.
* Fix Go ldflags handling.
* Correctly fix Go toolchain version detection.
* Properly mark Go as a required dependency in CMake.
* Disable VCS stamping as it does not work correctly on some platforms.
* Autodetect minimum required Go version from go.mod files.
This allows us to avoid needing to update the CMakeLists.txt file when
the required version changes in a Go component’s go.mod file.
* Prefix GoTools module name with Netdata to ensure we get our local module.
* Update integrations code to use new Go plugin location.
* Remove old go packaging files.
* keep old logic for initial cleanup that is working
* Re-sync Go plugin sources.
* Fix search order for finding Go toolchain.
* update module name
* fix /usr/local/go overwrite condition
---------
Co-authored-by: Fotis Voutsas <fotis@netdata.cloud>
Co-authored-by: ilyam8 <ilya@netdata.cloud>
|
|
* Rename endian.h to byte_order.h
The underlying issue is that non-relative
header search paths would pick up our own
endian.h. This should be fixed in a follow-up
PR.
* Do not include top-level source dir
* Move h2o dep from libnetdata to netdata binary.
* Update #endif comment.
|
|
* Properly handle systemd.cmake as a module.
* Split CMake compiler flag handling functions to their own module.
* Add include guards to modules.
* Prefix module names with Netdata.
This ensures that we end up using our local modules instead of possibly
using a system module with the same name.
* Drop include guards.
And shift systemd detection code to a macro so it’s less dangerous to
import the module multiple times.
|
|
* Add watcher thread to report shutdown steps.
* Add license header
|
|
At the point at which we call find_package() to locate protobuf, we know
that we do, in fact, need it for this build. Given this, we should be
marking it as required in the find_package() call so that if it’s not
found the configuration phase fails instead of things breaking in
potentially strange ways later on during the build itself.
|
|
* Drop unused Dockerfile.test.
It’s not been used for years, and it doesn’t even work at this point for
it’s intended purpose.
* Remove CodeClimate configuration.
We’re not using it anymore, so there is no point to keeping the
configuration around.
* Remove the build_external directory.
This isn’t used by any of our code AFAICT, and if it _is_ needed, it
should actually be in some sub-directory of `tests` instead of a
top-level directory whose name doesn’t even describe what it does.
* Remove .gitattributes
If there's any objection we can reinstate it.
* Move coverity-scan.sh under packaging/utils
* Move cmake files under packaging/cmake
* Remove devcontainer
* Fix up coverity script to run correctly from new location.
---------
Co-authored-by: vkalintiris <vasilis@netdata.cloud>
|
|
|
|
|
|
This is needed to properly support the latest versions of Protobuf.
|
|
|
|
* Move health/ under src/
* Update references to health paths.
```
find . -type f -exec sed -i 's:master/exporting:master/src/exporting:g' {} \;
```
* Update .git{,hub} refs to health.
|
|
|
|
|
|
* split dictionary into multiple files
* rename to hashtable
* dictionaries now support SIMPLE_HASHTABLE indexing, with user selection via a dictionary option
|
|
* add users to network-connections function
* cleaner and simpler filters; removed IPs and ports, added serverPort
|
|
|
|
* Move aclk/ under src/
* Update labeler
|
|
* Move ML under src
* Move spwan under src
* Move cli/ under src/
* move registry/ under src/
* move streaming/ under src/
* Move claim under src. Update docs
* Move database/ under src/
* Move libnetdata/ under src/
* Update references to libnetdata
* Fix logsmanagement includes
* Update generated script path.
|
|
* enable libmnl when it is available
* Link MNL if it's available
* working uid from proc too
* do not show sockets from unknown pids or uids
* fix comparison
* enable again unknown uid/pid
* updates to network viewer prototype
* apps.plugin minify and remove of cloexec workaround
---------
Co-authored-by: vkalintiris <vasilis@netdata.cloud>
|
|
* Setup sentry-native SDK.
* Integrate Sentry into our CI
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* minor fix
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* Include sentry field to the build matrix
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* Update the bundle_sentry flag for all the distros
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* more changes
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* NON mergeable change
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* .
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* Enable fetch content.
* Abort in profile plugin
* Update plugin_profile.cc
* NON MERGABLE COMMIT, just for testing purposes
* NON MERGEABLE CHANGE, jsut for testing purposes
* Bump
* Use breakpad backend
* Multiple changes
- Make DSN variable that we read from the CI from the CI
- Upload debug symbols
- Fix packaging workflow; include new env vars & fix shecllchecks
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* Modify sentry dif command
* fix merge conf
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* Fix merge conflict
* Undo file prefix map.
* Fix typo
* Cleanup stuff.
* Add 256-checksum
* Renable ML for debs
* Finalize CI changes
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* Update rules
* final touches
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* merge the two if, no point to have them sep
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
* Update contrib/debian/rules
Co-authored-by: Tasos Katsoulas <12612986+tkatsoulas@users.noreply.github.com>
* Update contrib/debian/rules
Co-authored-by: Tasos Katsoulas <12612986+tkatsoulas@users.noreply.github.com>
* Add license
* Enable sentry for debian 12.
* Update .github/workflows/packaging.yml
Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>
---------
Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
Co-authored-by: Tasos Katsoulas <tasos@netdata.cloud>
Co-authored-by: Tasos Katsoulas <12612986+tkatsoulas@users.noreply.github.com>
Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>
|
|
* network viewer based on local-sockets
* added more fields for the UI
* added socket state
* added inodes to the lists
|
|
* port useful code from incomplete PRs
* change systemd-journal plugin default thread name
|
|
|
|
* 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
|
|
* 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>
|
|
* Move mqtt_websockets under aclk/
* Use relative paths for includes from mqtt_websockets
...in order to reduce the number of header
search paths that we use when building the
agent. Ideally, we'd make each component a
standalone library target from CMake's
perspective but more work needs to be done
before we are able to do this.
* Remove unused files.
* Make licensing information consistent across all files.
* Flatten the hierarchy of source files.
|
|
* Use `-Werror` when checking compiler flags.
This should ensure that Clang rejects unknown flags correctly instead of
blindly eating some of them.
* Explicitly check C and C++ flags separately.
This should better handle the unusual case of mismatched compilers.
* Properly use Clang for C++ in our CI checks that build using Clang.
* Apply suggestions from code review
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
* Use functions and loops when possible.
* Fix typos and broken loops.
* Fix more typos.
* Fix bogus commas.
* Fix caching of compiler flag checks.
* Fix flag variable names to make them behave correctly in checks.
CMake adds a preprocessor define with the name of the variable being
defined by a compiler flag check, so we need to ensure not only that
the variable name is unique, but also that it is a valid name for a C
preprocessor definition.
* Fix scoping.
* Fix botched merge during previous rebase.
---------
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
|
|
|
|
* 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
|
|
* Disable address sanitizer for some functions.
These functions report some issues when running
the address sanitizer with `-W unittest`. We
want to run the sanitized binary on Github PRs
to catch newly-introduced issues. FIXMEs were
added so that we know which ones already existed
prior to this change.
* Add cmake option to use address sanitizer
* Run unit tests with address sanitizer.
* Specify attribute before the function declaration.
* Disable hardening flags.
|
|
* cleanup proc net-dev renames
* more cleanup
* remove unused variable
* fix memory leak in pluginsd parser
* fix double-free
|
|
* Add stack-protector flag handling.
* Add stack clash protection flag.
* Add CFI flag
* Only add flags that are not already in the compiler flags.
* Add branch protection flag.
* Add fortify source options.
* Add function/data section flags.
* Fix inclusion of hardening flags.
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
---------
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
|
|
* log2journal should not be linked against libnetdata; netdatacli is now linked against libnetdata so it does not need to redefine functions in libnetdata
* reformatting for smaller width
|
|
* added HAVE_ACCEPT4
* added HAVE_FINITE, HAVE_ISFINITE
* added SIZEOF_VOID_P
* added HAVE_NICE, HAVE_RECVMMSG, HAVE_GETPRIORITY
* added HAVE_C__GENERIC
* added HAVE_C_MALLOPT
* added HAVE_BACKTRACE, HAVE_CLOSE_RANGE, HAVE_SCHED_GETSCHEDULER, HAVE_SCHED_SETSCHEDULER, HAVE_SCHED_GET_PRIORITY_MIN, HAVE_SCHED_GET_PRIORITY_MAX
* added HAVE_DLSYM
* added function attributes checks
* fix SIZEOF_VOID_P
* added HAVE_PTHREAD_GETNAME_NP
* fixed compiler warnings
|
|
|
|
This fixes most of the scripts installed by cmake so that they correctly
have execute permissions.
We need to do more work than just this (such as properly handling the
SUID bit), but this is a solid starting point.
|
|
* 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
|
|
* ndsudo command
* added help
* make ndsudo setuid to root
* fix megacli binary name on FreeBSD
* move ndsudo to collectors/plugins.d/
* address PR comments
* do not print the command line argument, instead print its index
---------
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
|
|
|
|
|