1
0
mirror of https://github.com/netdata/netdata.git synced 2021-06-06 23:03:21 +03:00

124 Commits

Author SHA1 Message Date
vkalintiris
0d96e0a187 Compile/Link with absolute paths for bundled/vendored deps. (#11129)
* 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.
2021-06-01 13:22:36 +03:00
Austin S. Hemmelgarn
9574cb4c95 Bundle the react dashboard code into the agent repo directly. (#11139)
* 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.
2021-05-14 11:41:16 -04:00
Josh Soref
24ce83460a Spelling build (#10909) 2021-04-14 12:24:45 +03:00
Austin S. Hemmelgarn
e54982b6c8 Docker-based packaging workflow in GitHub Actions. (#9964)
* Add a new GHA workflow for building and publishing binary packages.

This greatly simplifies the package handling code, significantly reduces
the amount of things we are running in Travis, adds better CI for package
builds for PRs, finally eliminates LXC from any of our CI, and enables
us to make further major improvements much easier.

* Migrate repo cleanup to GHA and remove dead code.

* Fix RPM package builds.

* Fix DEB installation.
2021-03-15 08:31:16 -04:00
Austin S. Hemmelgarn
6fb4f28fbe Fixed handling of permissions for some plugins. (#10490)
* Removed pointless capabilities in our RPM spec file.
* Shifted slabinfo and perf plugins to use proper capabilties instead of
  being SUID root.
2021-03-12 09:23:57 -05:00
Austin S. Hemmelgarn
be980fd137 Fixed condition controlling use of static LWS in RPM builds. (#10661)
The original intent was to only use a static copy of LWS if we couldn’t
use a system copy. Due to two incorrect conditionals in the spec file
though, what was actually happening was that we were using a static
build of LWS on systems where we could use a system copy, and not
linking against LWS at all on other systems.

This fixes those conditionals so that we use a system copy if available,
and provide a static copy if a system copy is not available.
2021-02-22 07:09:40 -05:00
Austin S. Hemmelgarn
94dd1bcd34 Fixed Netdata Cloud support in RPM packages. (#10578) 2021-02-01 10:22:09 -05:00
Austin S. Hemmelgarn
0d54bda605 Switched to using system libwebsockets for RPM builds. (#10507)
* Switched to using system libwebsockets for RPM builds.

Also cleans up the configure statement in the RPM spec file.

* Add version requirement for LWS dep and only use native on platforms that meet it.
2021-01-15 12:38:05 -05:00
Austin S. Hemmelgarn
ea5837d369 Fixed bundling of libwebsockets in binary packages. (#10460)
Unintentionally broken by #9984. This re-enables cloud support in binary
packages.
2021-01-11 08:21:22 -05:00
Austin S. Hemmelgarn
8531b3c766 Fix handling of Python dependency for RPM package. (#10345) 2020-12-09 13:42:07 -05:00
Austin S. Hemmelgarn
8f7b2c8069 Use automatic dependency generation for RPM builds. (#9937)
Our current RPM spec file includes _all_ of our library dependencies as
statically listed `Requires:` lines. This, in turn, requires a very
large number of conditionals in the dependencies to account for package
naming differences between RPM distros, and also makes it a pain in the
arse to port the spec file to work with new releases of existing
distros.

This changes the spec file to just use the automatic `Requires:`
generation functionality that's already included in the RPM build
process. The net effect is that the spec file ends up much cleaner, and
it works just about anywhere with minimal modification., as well as us
not having to track anything but build dependencies manually.
2020-09-17 07:46:38 -04:00
James Mills
a195025ec6 Fix missing newline concatentation slash causing rpm build to fail (#9900) 2020-09-09 07:00:17 -04:00
James Mills
4a5bb11ada Fixed typo in option name used to use bundled libJudy (#9893) 2020-09-08 06:59:45 -04:00
Austin S. Hemmelgarn
4f108b1ff2 Fixed handling of libJudy bundling for RPM packages. (#9875) 2020-09-04 18:04:59 -04:00
Adrien Mahieux
c4ec0791bf Package ebpf plugin only if enabled in config.h (#9752) 2020-08-24 08:19:24 -04:00
Adrien Mahieux
95e0339b68 Fix netdata.spec.in default permissions for /usr/libexec/netdata (#9621) 2020-07-30 07:38:22 -04:00
Austin S. Hemmelgarn
8a105bad81 Added eBPF collector support to DEB and RPM packages. (#9628)
* Add DEB/RPM package build tests to Travis.

* Add working support for bundling eBPF in binary packages.

* Show stdout and stderr from commands run in LXC.

* Add proper bundling code for libbpf.

* Use AC_CHECK_FILE for libbpf.a external dep.

This way it gets properly logged in both configure output and the
configure log.
2020-07-30 07:09:59 -04:00
James Mills
1b606bc1b2 Revert the eBPF package bundling that breaks the release and DEB packages. (#9552)
* Revert "Fix SHA256 handling in eBPF bundling code. (#9546)"

This reverts commit 7ff315810e.

* Revert "Add eBPF bundling script to `make dist`. (#9539)"

This reverts commit 3a7961d417.

* Revert "Properly include eBPF collector in binary packages. (#9450)"

This reverts commit 690fbcefd3.
2020-07-16 21:34:26 +10:00
Austin S. Hemmelgarn
690fbcefd3 Properly include eBPF collector in binary packages. (#9450) 2020-07-13 07:25:18 -04:00
Adrien Mahieux
9e53c7dec4 Package: obsoletes conflicting EPEL packages (#6879 #8784) (#9108) 2020-05-22 00:51:59 +10:00
thiagoftsm
18ec989b21 Rename eBPF collector (#8822)
We renamed eBPF collector for a more meaningful name.
2020-05-13 16:56:42 +00:00
Austin S. Hemmelgarn
d34f3ce1fc Use a prefix for the old dashboard. (#8752)
* Use a prefix for the old dashboard.

This switches the code for handling of the new React dashboard to use a
prefix for accessing the old dashboard instead of relying on a switching
script to handle selecting the desired dashboard implementation.

It also adds proper support to the packaging code to bundle the React
dashboard.

* Fixed typos in web/gui/Makefile.am.

* Tidy up prefixed dashboard.

This is based on discussion with cakrit about how to handle this more
sanely.

* use /old suffix for streamed nodes links in dropdown menu

* fix fetching dynamic vendor files with /old suffix

Co-authored-by: Jacek Kolasa <jacek.kolasa@gmail.com>
2020-04-24 07:11:30 -04:00
Austin S. Hemmelgarn
9b644c6d38 Added JSON-C dependency handling to instlal and packaging. (#8776)
* Add JSON-C dependency handling to instlal and packaging.

* Update build failure message.
2020-04-21 09:36:25 +10:00
Austin S. Hemmelgarn
1841d37354 Correctly fixed RPM package builds on Fedora. (#8595)
* Revert "Fix broken Fedora 30/31 RPM builds (#8572)"

This reverts commit 71290d9cb9.

It didn't actually fix things and caused a different set of issues.

* Build LWS and mosquitto with -fPIC in RPM builds.

This fixeslinking errors that are currently causing RPM package build
failures for Fedora 30/31.
2020-04-03 11:40:31 -04:00
Austin S. Hemmelgarn
83a50413a5 Added code to bundle LWS in binary packages. (#8255)
* Added code to bundle LWS in binary packages.

This adds the required tode to bundle a custom build of libwebsockets as
required by Netdata Cloud functionality into the binary packages.

* Update packaging/bundle-lws.sh

Co-Authored-By: James Mills <prologic@shortcircuit.net.au>

Co-authored-by: James Mills <prologic@shortcircuit.net.au>
2020-03-09 07:38:05 -04:00
James Mills
f6ee467617 Revert "Fixed Source0 URL in RPM spec (#7794)" (#8305)
This reverts commit 1477784048.

Fixes #8283
2020-03-06 10:19:53 +10:00
Austin S. Hemmelgarn
c08081b435 support rhel by not installing the cups plugin when v1.7 is not satisfiable (#7216)
Co-authored-by: James Mills <prologic@shortcircuit.net.au>
2020-03-05 17:25:00 -05:00
thiagoftsm
696264006c eBPF process plugin (#7979)
* syscall_plugin: Compilation

This commit brings the necessaries changes to the compilation files

* syscall_plugin: Collector body

This commit brings the collector body to files.

* syscall_plugin: .gitignore

This commit adds syscall.plugin to .gitignore

* syscall_plugin: Plugin adjust

Fix reference and remove message

* syscall_plugin: Remove limit

Remove call to setrlimit

* syscall: Fix start

This commit fixes problems related with start of the plugin

* syscall_plugin: Bring heartbeat

This commit removes the sleep and changes to heartbeat to avoid plugin receive a SIGTERM

* syscall_plugin: Missing semicolon

* syscall_plugin: Fix dimension

Brings the initial value of chart for the normal dimension of the other values

* syscall_plugin: Fix dimension 2

The previous change did not give the expected results, so I am bringing more a fix

* syscall_plugin: adjust values

Rename function and adjust pid size

* syscall_plugin: Remove Chart and fix var

this commit removes a chart that will not be created and fix an error
when the bytes were calculated

* syscall_plugin: Brings error

This commit brings a new variable that will be used to identify errors

* syscall_plugin: Rename charts

This commit starts to rename the charts properly

* syscall_plugin: Rename plugin

* syscall_plugin: missing changes for rename

* syscall_plugin: fix compilation

* syscall_plugin: bring new charts

* syscall_plugin: Warnings

Remove warnings from compilation time

* vfs_plugin: Fix Error chart plot

There was an error when the chart was being displayed

* vfs_plugin: Change family

This commit changes the family of the VFS plugin

* vfs_plugin: Fix order

This PR fixes the wrong order when creating a chart

* vfs_plugin: Remove path

Remove path from structure

* vfs_plugin: From Perf to HASH

This commit converts the main source a hash table and also split the data collection per chart

* vfs_plugin: Adjusts and exit

This commit brings adjusts to the collect and the complete monitor to exit events

* vfs_plugin: Start process

This commit brings the monitoring of a process start and thread creation to Netdata

* vfs_plugin: Visualization and collection

Adjust variables to show and to collect data

* vfs_plugin: Connection with apps plugin

This commit starts to bring the connection with apps.

* vfs_plugin: Various

This commit brings new label for charts, fix to error chart and adjusts for new charts, I am sorry

* vfs_plugin: basis new chart

This commit brings the basis of the new charts for the plugin

* vfs_plugin: Apps plugin

This commit brings the integration with apps.plugin

* vfs_plugin:fix counter

This commit fixer the difference between apps plugin and counter

* ebpf_plugin: rename charts

This commit renames the charts

* ebpf_plugin: New charts adjusts and log start

* ebpf_plugin: Log thread

Creates the log thread that will be used to store error message

* ebpf_plugin: Rename Web Group

This commit reorganize the charts on dashboard

* ebpf_plugin: Restore

This commit restore the previous status of the collector where we only have a global vision of the problems

* ebpf_plugin: kretprobe

This commit brings the initial changes for the collector works with both eBPF program

* ebpf_plugin: New syscalls

This commit brings the new syscalls that we are monitoring

* ebpf_plugin: New charts

This commit brings new charts to the collector

* ebpf_plugin: Parse config

This commit starts the parser of the file

* ebpf_plugin: collector debug

* ebpf_plugin: Global variables from config

This commit brings the global variable update from the config file

* ebpf_plugin: Clean kprobe_events

This commit brings the clean of kprobe_events and also starts the common library for all eBPF collectors

* ebpf_plugin: Check kernel version

This function brings a check for the kernel version

* ebpf_plugin: Start documentation

This commit brings the initial documentation for the users

* ebpf_plugin: Documentation

This commit brings adjust to code and updates for the documentation

* ebpf_plugin: this commit brings the developer mode to the collector

* ebpf_plugin: Documentation

This commit brings more information to the documentation

* ebpf_plugin: Documentation

This commit brings more information to the documentation

* ebpf_plugin: errno to logs

Brings errno number to logs

* ebpf_plugin: Documentation

This commit brings fixes to the collector documentation

* ebpf_plugin: Move description

This commit move the chart description from the C code to dashboard_info.js

* ebpf_plugin: Rename files

This commit rename files to the final version

* ebpf_plugin: COntinue renaming

This commit continue renaming the files to the final version

* ebpf_plugin: Renaming process

This commit renames the final plugin

* ebpf_plugin: Finish rename

This commit finishes the rename processing

* ebpf_plugin: fix entry charts

This commit removes one chart from  mode

* ebpf_plugin: Fix remove

This commit brings a new function to fix the unload of collector when the collector
is running in entry mode

* ebpf_plugin: Rename on old kernels

This commit brings fixes for syscall names

* ebpf_plugin: Timestamp to log

This commit brings the timestamp to the logs

* ebpf_plugin: Remove syscall

With the changes on the backend, we are not monitoring more sys_clone

* ebpf_plugin: The syscall is important for 5.3 or newer, so I am returning

* ebpf_plugin: Remove concurrency

This commit adds variables necessary to interact with the new structor
of the eBPF program

* ebpf_plugin: Ids to dimension

This commit fews the functions name as ids for the dimensions

* ebpf_plugin: Missing chart

This commit brings the missing chart for Netdata

* ebpf_plugin: Remove unecessary message

Remove unecessary error message from the collector

* ebpf_plugin: Rename dimension

This commit renames the dimension for something more meaninful

* ebpf_plugin: Optional log

This commit converts the developer.log in an optional feature

* redirect to stdoou

This commit starts to bring the capability to redirect everything to stdout

* ebpf_plugin: Disable dev mode

This commit removes the possibility to load the dev mode file for while

* ebpf_plugin: Disable eBPF process

By default this plugin won't be enabled

* ebpf_plugin: Update debug message

* ebpf_plugin: this commit adjusts documentation to next release.

* ebpf_plugin: documentation fix.

* ebpf_plugin: Percpu hash

This commit moves from an unique hash table for various to speed up
the collector

* ebpf_plugin: Compatibility

This commit set compatibility version between kernels
2020-02-17 21:28:33 +00:00
Austin S. Hemmelgarn
8772cb7a18 Fix nightly RPM builds. (#8109)
* Fix bundling of libmosquitto for RPM builds.

* Add libmosquitto handling files to make dist output.
2020-02-17 14:57:11 -05:00
Austin S. Hemmelgarn
a1b1ee2f2c Add handling of libmosquitto to binary packages. (#8085)
This adds code to handle bundling our custom fork of libmosquitto into
our binary packages. It pulls down the required sources, builds them,
and copies the build artifacts into the right place so that the build of
Netdata actually uses them.
2020-02-14 07:45:52 -05:00
Austin S. Hemmelgarn
f5995f9c9e Fix CentOS 7 RPM build failures. (#7993)
* Correct date in RPM spec file changelog.

2020-01-01 was a Wednesday, not a Thursday.

* Don't mark go.d.plugin executable in staging area.

This prevents it from being checked for C-style debug info that it
doesn't have, thus allowing the build to continue correctly.
2020-02-06 15:12:19 -05:00
Austin S. Hemmelgarn
31675045e9 Assorted cleanup items in the RPM spec file. (#7927)
* Add explicit creation of log and cache directories to specfile.

This eliminates a RPM build error seen on multiple OSes with recent
versions of rpmbuild.

* Change build dependency for RPMs fron `git` to `git-core`.

We don't actually need everything the regular `git` package pulls in,
just the `git` command and a handful of built-in sub-commands, so we can
just depend on `git-core` during the build instead of the full package.

This causes no issues for existing build workflows, as `git` pulls in
`git-core`. However, it will allow us to make the new Docker-based
package building workflow a bit more efficient as we can decrease the
size of the package builder images.

* Remove useless build dependency on netcat in specfile.

We don't actually use netcat anywhere during the build process, so
there's no point in depending on it for the build.

* Update RPM specfile changelog.
2020-02-03 07:30:13 -05:00
James Mills
1477784048 Fixed Source0 URL in RPM spec (#7794) 2020-01-29 09:21:23 +10:00
James Mills
2a0cdadc6f Remove all refernces to .keep files (#7829) 2020-01-25 12:24:55 +10:00
Austin S. Hemmelgarn
de9a08df6c Fix install permissions (#7632)
* Fix ownership and permissions in RPM packages.

This restructures things so that we're relying as much as possible on
the `make install` command, which gets the ownership and permissions
right in most cases.

It does not change any of the capabilities afforded to various commands,
those need further investigation to be set correctly.

* Use correct perms and owners in installer script.

This corrects the permissions and ownership of files as installed
through the regular installer script (used for kickstart.sh installs).
2020-01-24 07:19:40 -05:00
Paul Emm. Katsoulakis
bf36a8c094 netdata/packaging: split free IPMI for RPM (#6935) 2020-01-22 14:54:14 -05:00
Austin S. Hemmelgarn
6fcb3e65f1 Add netdata-claim.sh to the RPM spec file. (#7592)
This should fix current RPM build issues.
2019-12-20 22:38:36 +02:00
Austin S. Hemmelgarn
e36e7496cb Update Netdata RPM spec file to package netdatacli. (#7513)
* Update Netdata RPM spec file to package netdatacli.

This should fix the RPM build failures.

* Change netdatacli to root ownership.
2019-12-13 07:35:11 -05:00
Konstantinos Natsakis
1094175c3b Ownership and permissions of /etc/netdata (#7244)
* make install takes care of ownership and permissions of /etc/netdata

Instead of netdata-installer.sh

* Fix identation in Makefile.am files

* netdata-installer.sh: Clearer variable assignment

* netdata-installer.sh: Set /etc/netdata/netdata.conf ownership to root:root and permissions to 0644

* netdata-installer.sh: Set /etc/netdata/.environment permissions to 0644

* install-or-update.sh: Set permissions for /opt/netdata/etc/netdata.conf to 0644

* install-or-update.sh: Use ${NETDATA_PREFIX} more

* install-or-update.sh: Improve indentation

* install-or-update.sh: Do not create /opt/netdata/etc/netdata directories

* debian/rules: /etc/netdata files and directories are now installed by make install

* debian/rules: Properly copy files across directories

When destination directory exists

* netdata.spec.in: /etc/netdata ownership and permissions

* Revert "Fix identation in Makefile.am files"

This reverts commit 63fdb299b69152fda6984f81b0fef02f364c5efe.

* Remove uninstall-local recipes from Makefile.am files

* Removed superfluous whitespace and hash
2019-11-11 21:16:42 +02:00
Paul Emm. Katsoulakis
7de804a4e1 netdata/packaging: Make spec file more consistent with version dependencies, plus some documentation nits (#6948)
* netdata/packaging: Add hard dependency on version 1.7 and above

* netdata/packaging: Update distributions documentation with version dependency on cups
2019-09-29 11:08:53 +02:00
Konstantinos Natsakis
d8fc63aa4a netdata.spec.in: Do not build CUPS plugin subpackage on CentOS 6 and CentOS 7 (#6926) 2019-09-24 11:54:04 +02:00
Adrien Mahieux
0942680f85 Collector slabinfo (#6800)
### Summary

Provide new collector parsing `/proc/slabinfo` to provide details on kernel slab structures.

Asked by issue #13 (very happy for the oldest issue in backlog) 

##### Component Name

collectors/slabinfo.plugin

##### Additional Information

This slabinfo details allows to have clues on actions done on your system.
In the following screenshot, you can clearly see a `find` done on a ext4 filesystem (the number of `ext4_inode_cache` & `dentry` are rising fast), and a few seconds later, an admin issued a `echo 3 > /proc/sys/vm/drop_cached` as their count dropped.
2019-09-18 14:13:32 +02:00
Paul Emm. Katsoulakis
ff22487f28 netdata/packaging: Split CUPS plugin to separate package (RPM) (#6700)
* netdata/packaging: introduce cups subpackage on RPM named netdata-plugin-cups

* netdata/packaging:[ci skip] use the dev branch to test

* netdata/packaging: [ci skip] temporary workaround for build-id error during go.d plugin set up

* netdata/packaging: re-arrange package dependencies

* netdata/packaging: use a global version variable and make sure cups will depend on the specific version of netdata, we tightly pair them

* netdata/packaging: not sure, i guess this is also needed during build [ci skip]

* netdata/packaging: always use netdata packagecloud account and just switch to -devel when repo slug is paulkatsoulakis/netdata

* Revert "netdata/packaging: not sure, i guess this is also needed during build [ci skip]"

This reverts commit 474333e8c41daa759636afa3eda2a098fcee8463.

* netdata/packaging: [ci skip] add cups package also

* Revert "netdata/packaging: [ci skip] add cups package also"

This reverts commit 3914d7000d28623daa93c4a799cee5bc17e624a1.

* netdata/packaging: add changelog, dont run the install section for cups

* netdata/packaging: explicitly exclude cups from main package

* netdata/packaging: [ci skip] adjust perms, we used to have 0750 for cups

* netdata/packaging: [ci skip] reinstate master branch in travis

* netdata/packaging: another miss from the merge

* netdata/packaging: correlate with the other branch [ci skip]

* netdata/packaging: dont use personal account info
2019-09-16 10:53:06 +02:00
Paul Emm. Katsoulakis
a2e1411450 netdata/packaging: work around redhat complaining on build-id binary (#6792) 2019-09-05 17:18:10 +02:00
Pavlos Emm. Katsoulakis
daac4557d5 netdata/packaging: [ci skip] Emergent workaround fix for RPM packages - we have to check why build-id error started popping up now for RPM on go.d binary 2019-08-24 18:59:48 +03:00
Paul Emm. Katsoulakis
dac249d3d1 netdata/packaging: Align libdir in all configure commands (#6682)
* netdata/packaging: Align libdir with the one we expect our installation to use, following the rest of the directory correllations

* netdata/packaging:[ci skip] One more
2019-08-16 22:19:09 +03:00
Pavlos Emm. Katsoulakis
c0604c5879 netdata/packaging: [ci skip] The proposed flag did not work, removing and re-arranging the install of the binary 2019-08-16 12:03:36 +03:00
Pavlos Emm. Katsoulakis
3f248b3ce2 netdata/packaging: [ci skip] Mitigate build-id issue for go.d binary (Temp workaround) 2019-08-16 11:29:49 +03:00
Paul Emm. Katsoulakis
af41a01c1b netdata/packaging: put go.d version in one place (#6557)
* netdata/packaging: [ci skip] Add go.d version to a single place

* netdata/packaging: [ci skip] Things are a bit different in debian build, we need to define the path in a different way so pass it from the upper layer

* netdata/packaging: [ci skip] Missed to add on the makefile

* netdata/packaging: bump go.d version
2019-08-12 09:55:32 +03:00
Paul Emm. Katsoulakis
66d6498ed4 netdata/packaging: Expect .tar.gz version of go.d plugin (#6590)
* netdata/packaging: Expect .tar.gz version of go.d plugin, after go.d PR248

* netdata/packaging: Checksum comes on the tarball

* netdata/packaging: dont mv the file after extraction, just directly extract to destination, its cleaner. Also, make sure you remove the tmp folder

* netdata/packaging: bump go.d to v0.8.0

* netdata/packaging: actually fix

* netdata/packaging: change the way we extract it, wasnt right after all

* netdata/packaging: update go.d checksums
2019-08-08 00:24:18 +03:00