* Do not accept a path when using --with-bundled-lws.
The bundled library is always placed under externaldeps/libwebsockets,
when using the netdata-installer.sh script. When this option is missing,
we look for the system-wide installed version.
* Do not accept a path when using --with-bundled-libJudy.
The bundled library is always placed under externaldeps/libJudy. When
the option is not given, we look for the system-wide installed version.
* Use absolute header paths for repo-internal deps.
* Use absolute library paths for repo-internal deps.
* Store info about the installation type for later retrieval.
* Properly handle install type on updates.
* Restructure install type values for easier parsing.
* Fix checksums.
* Fix .gitignore check.
* Remove code for bundling the dashoard on install.
* Bundle the dashboard code directly into the agent repo.
This diffstat looks huge, but it’s actually relatively simple. The only
_actual_ changes are in the Makefiles, `configure.ac`, and the addition of
`generate_dashboard_makefile.py`. Everything else consists of removing
files that are included in the dashboard tarball, and extracting the
contents of the tarball into `web/gui/dashboard`.
* CI cleanup.
* Automate bundling of the dashboard code.
This replaces the makefile generator script with one that handles
bundling of the dashboard code in it’s entirety, and updates the GHA
workflow used for generating dashboard PRs to use that instead of the
existing shell commands.
It also removes the packaging/dashboard.* files, as they are no longer
needed.
* Swapping out sentence about Google Analytics with a PostHog version of it.
* replace "Google Analytics" with "Netdata"
replace "sent to Google Analytics" with "sent to Netdata".
Since we are no using a self hosted Netdata PostHog instance i think "sent to Netdata" makes most sense.
* update opt-out paragraph based on posthog
* Replace references to Google Analytics with PostHog
@joelhans @cakrit i'm assuming with might need to have legal input on any changes to this doc so my changes may or may not be acceptable, at a minimum they need a review by someone from legal.
* update google analytics reference with posthog
* replace google analytics with posthog
* replace google analytics with netdata
* adds a new implementation of ACLK written almost from scratch
* external dependencies only OpenSSL and JSON-C
* fallback for systems where ACLK Legacy can't build (for technical or philosophical reasons)
* can be forced to build by giving "--aclk-ng" to the installer
CAP_PERFMON is only available with Linux kernel 5.8 or newer, and needs
a sufficiently up-to-date userspace to be able to set it.
With this change, we fall back to CAP_SYS_ADMIN (which CAP_PERFMON is a
proper subset of) if we cannot set CAP_PERFMON for the perf plugin.
* Use `glibtoolize` on macOS instead of regular `libtoolize`.
This ensures we get the version from Homebrew instead of the version
from XCode.
* Update install documentation for macOS.
* Try to update local tags during build to ensure consistent version.
By default, `git` does not update the list of tags for a repository
after it is first cloned unless you explicitly tell it to do so.
Because we use the most recent tag as the first part of our version
number, this can lead to strange ancient-looking version numbers that
are actually far more recent (for example, `v1.11.1-2915-g6106dd7`,
which is actually from v1.21.1 sources), potentially causing confusion
with respect to support.
This adds code to `netdata-installer.sh` to try to update the local repo
with the remote tags to ensure that we actually have sane version
numbers.
* Use 5 digits for commit count in version number comparison.
The original code in `netdata-updater.sh` includes a hard-coded
assumption that a version number will never have more than 3 digits for
the commit count. This is of course wrong in a handful of cases, which
will then get stuck on the older version because of the effects of digit
counts on comparisons.
This updates from our current 999 commit limit to a limit of 99999
commits, which is a reasonable expectation that we should never get
_that_ far.
* Add a CI check for building against Clang
* Fix CFLAGS for libmosquitto/libwebsockets so builds work with Clang
* Add fixes for libbpf, judy, and JSON-C.
Co-authored-by: James Mills <prologic@shortcircuit.net.au>
* allows usage of system libwebsockets
* fixes problems that were preventing ACLK to work with LWS `4.1.`
* add LWS info to buildinfo
Co-authored-by: Austin S. Hemmelgarn <austin@netdata.cloud>
* Add systemd timer unit to handle auto updates.
This adds a systemd timer unit and associated service for running the
updaterscript. This allows better support for auto-updates on systems
that use systemd, removing the need for cron or special shims to handle
periodic tasks.
This will be used in preference to our existing auto-update support on
systems running systemd unless the user overrides this behavior.
* Add an option to the installer to override auto-updater type detection.
This allows users to specify what auto-updater scheduling mechanism to
use. This wil persist the selection to updates as well.
Supported values are:
* systemd': Uses a systemd timer unit and service to handle automatic
updates.
* 'interval': Uses a script in /etc/cron.daily or /etc/periodic/daily.
* `crontab`: Uses a crontab file in /etc/cron.d.
* Change priority of systemd support.
This way existing users won't get converted, and by default you'll still
get emails on failures.
* Case-normalize the value passed to --auto-update-type.
* Fix incorrect naming of crontab file.
* Fixed function naming.
* Fixed libJudy bundling code.
There was a typo in the installer which was causing the configure script
to not find the library.
* Persist libJudy CFLAGS into build environment.
* Add installer code to bundle libJudy.
* Update libJudy build to work on more systems.
* Added libtool to deps.
* First part of configure changes - detection of library
* Configure change part two: integrating flags into the build
I've tested the build works and that the symbols end up correct in the compiled binary, but I have not tested that
dbengine is working properly after the changes.
* Add required configure options for bundling libJudy.
* Bail early if a libJudy build step fails.
* Added messges for specific reasons libJudy is being built.
* Fix bail condition for bundling failures.
We don't care about whether the cloud is required or not, just whether
the user asked for a local build of libJudy or not.
* Fix logic for deciding when to bundle libJudy.
* Fix judy build to clean up properly if it fails.
Co-authored-by: Andrew Moss <1043609+amoss@users.noreply.github.com>
Update temporary directory checking in installer.
This updates the checks that our installer and updater make to choose
what to use for a temporary directory to be both more robust and more
portable.
The new checks use the following logic:
* For each directory to be checked, verify that it is both writable by
the current user, and that the current user can execute files they
write there.
* If `$TMPDIR` is set, preferentially use that.
* If that fials, try `/tmp`.
* If that also fails, fall back to `$PWD`.
* If all checks fail, bail early with an explanation instead of failing
when we first tryto do things with the directory.
It also adds the same checks to the `netdata-installer.sh` script, which
was previously completely missing them.
* Revert "Revert "Override linker and include paths for static builds. (#9311)" (#9343)"
This reverts commit 36d5e40dca.
* Run git clean before building anything
* Fix checking out openssl and skip if bind-mounted sources already exist at the given path
* Add --require-cloud flag to the static build scripts
* Add CMAKEFLAGS support to the installer to customize how to build libwebsockets for static builds
* Update packaging/makeself/jobs/50-bash-4.4.18.install.sh
Co-authored-by: Andrew Moss <1043609+amoss@users.noreply.github.com>
* Fix remaining other two tyos
Co-authored-by: Andrew Moss <1043609+amoss@users.noreply.github.com>
* Add FreeBSD system detection and package manager support
* Add suitable package selections for FreeBSD
* Add non-interactive mode for pkg
* Use gmake to buiold on FreeBSD and --disable-dependency-tracking
* Add tool to build the dist and static x864_64 artifacts
* Add support for overriding the URL for installing/updating from nightlies
* Refactor curl/wget usage into less places. Use curl -q and --output and -O options instead of redirecting stdout
* Update md5sum(s) of kickstart/kickstart-static64
* Add tool to build the dist and static x864_64 artifacts
* Add tool to bump the Netdata packaging version
* Cleanup all the makeself scripts and update to Alpine 3.11
* Add zgrep and xz to Alpine 3.7 container used to build x86_64 static Netdata so check-kernel-config.sh does not fail
* Explicitly bundle the -static varient of the eBPF kernel-collector library/programs
* Install/Bundle the eBPF kernel-collector library / eBPF programs anyway even if the Kernel check fails (just warn the user)
* Fix missing check-kernel-config.sh from dist (breaking kickstart.sh installs)
* Add missing packaging/ebpf.version and packaging/ebpf.cehcksums to dist source archive
* netdata_installer_kernels: New kernels
This commit brings new kernels for our netdata-installer
* RH detection
This commit brings the RH detection to netdata-installer, but it cannot be
tested yet until we merge a PR on kernel-collector
* netdata_installer_kernels: RH kernels
This commit brings updates that allows to install and run the collectors
on RH
* netdata_installer_kernels: Kernel variables
This commit brings definitions instead magic number to the isntaller
* netdata_installer_kernels: remove echo
This commit removes echo to avoid new line
* netdata_installer_kernels: Move C code
This commit removes the C code that will be inserted in another PR
* Update eBPF install to use released version.
This updates the install code for the eBPF plugin to properly utilize
(and verify) a tagged release of the plugin instead of pulling the
upstream master branch.
It also adds support for using a local copy of the tarball, and switchs
the default behavior to install the eBPF plugin instead of not
installing it.
* Tidy-up messages relating to eBPF.
* Fix typos in error handling functions.
* ebpf-release: New kernels
This commit brings the kernels necessary to support Debian 10.0
* ebpf-release: Bring support for new package format
* ebpf-release: collector as loader
This commit brings the necessary changes for the collector loads all
the nfiles depending of the kernel it is running
* Update eBPF install to use released version.
This updates the install code for the eBPF plugin to properly utilize
(and verify) a tagged release of the plugin instead of pulling the
upstream master branch.
It also adds support for using a local copy of the tarball, and switchs
the default behavior to install the eBPF plugin instead of not
installing it.
* netdata_installer_kernels: New kernels
This commit brings new kernels for our netdata-installer
* RH detection
This commit brings the RH detection to netdata-installer, but it cannot be
tested yet until we merge a PR on kernel-collector
* netdata_installer_kernels: RH kernels
This commit brings updates that allows to install and run the collectors
on RH
* netdata_installer_kernels: Kernel variables
This commit brings definitions instead magic number to the isntaller
* netdata_installer_kernels: remove echo
This commit removes echo to avoid new line
* netdata_installer_kernels: Move C code
This commit removes the C code that will be inserted in another PR
* Tidy-up messages relating to eBPF.
* Fix typos in error handling functions.
* ebpf-release: New kernels
This commit brings the kernels necessary to support Debian 10.0
* ebpf-release: Bring support for new package format
* ebpf-release: collector as loader
This commit brings the necessary changes for the collector loads all
the nfiles depending of the kernel it is running
* Fix package name handling.
* Bump eBPF kernel-collector to v0.1.0
* Update --help to state eBPF is enabled by default and add --disable-ebpf option in --help output
* Remove deprecated kernel version compatibility checks
* Fix EBPF_TARBALL
* Remove libc path detection logic (deprecated0
* Use the new package structure of kernel-collector
* Relax the glob on netdata_ebpf as we may develop/distirbute other types of ebpf programs
* Fix ownership of ebpf libraries/programs
* Make the check-kernel-config.sh local to the installer
* Make plugins.ebpf = yes (by default)
Co-authored-by: Thiago Marques <thiagoftsm@gmail.com>
Co-authored-by: James Mills <prologic@shortcircuit.net.au>
This PR merges the feature-branch to make the cloud live. It contains the following work:
Co-authored-by: Andrew Moss <1043609+amoss@users.noreply.github.com(opens in new tab)>
Co-authored-by: Jacek Kolasa <jacek.kolasa@gmail.com(opens in new tab)>
Co-authored-by: Austin S. Hemmelgarn <austin@netdata.cloud(opens in new tab)>
Co-authored-by: James Mills <prologic@shortcircuit.net.au(opens in new tab)>
Co-authored-by: Markos Fountoulakis <44345837+mfundul@users.noreply.github.com(opens in new tab)>
Co-authored-by: Timotej S <6674623+underhood@users.noreply.github.com(opens in new tab)>
Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com(opens in new tab)>
* dashboard with new navbars, v1.0-alpha.9: PR #8478
* dashboard v1.0.11: netdata/dashboard#76
Co-authored-by: Jacek Kolasa <jacek.kolasa@gmail.com(opens in new tab)>
* Added installer code to bundle JSON-c if it's not present. PR #8836
Co-authored-by: James Mills <prologic@shortcircuit.net.au(opens in new tab)>
* Fix claiming config PR #8843
* Adds JSON-c as hard dep. for ACLK PR #8838
* Fix SSL renegotiation errors in old versions of openssl. PR #8840. Also - we have a transient problem with opensuse CI so this PR disables them with a commit from @prologic.
Co-authored-by: James Mills <prologic@shortcircuit.net.au(opens in new tab)>
* Fix claiming error handling PR #8850
* Added CI to verify JSON-C bundling code in installer PR #8853
* Make cloud-enabled flag in web/api/v1/info be independent of ACLK build success PR #8866
* Reduce ACLK_STABLE_TIMEOUT from 10 to 3 seconds PR #8871
* remove old-cloud related UI from old dashboard (accessible now via /old suffix) PR #8858
* dashboard v1.0.13 PR #8870
* dashboard v1.0.14 PR #8904
* Provide feedback on proxy setting changes PR #8895
* Change the name of the connect message to update during an ongoing session PR #8927
* Fetch active alarms from alarm_log PR #8944