1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
name: netdata # you probably want to 'snapcraft register <name>'
base: core24 # the base snap is the execution environment for this snap
build-base: devel
version: '0.1' # just for humans, typically '1.2+git' or '1.3.2'
summary: Netdata Agent
description: |
Netdata is distributed, real-time, performance and health monitoring for
systems and applications. It provides insights of everything happening on the
systems it runs using interactive web dashboards.
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots
layout:
# /etc/netdata:
# symlink: $SNAP_COMMON/etc/netdata
# /usr/lib/netdata:
# symlink: $SNAP/usr/lib/netdata
# /usr/libexec/netdata:
# symlink: $SNAP/usr/libexec/netdata
# /usr/share/netdata:
# symlink: $SNAP/usr/share/netdata
# /var/cache/netdata:
# symlink: $SNAP_DATA/var/cache/netdata
# /var/lib/netdata:
# symlink: $SNAP_DATA/var/lib/netdata
# /var/log/netdata:
# symlink: $SNAP_DATA/var/log/netdata
/etc/sensors3.conf:
symlink: $SNAP/etc/sensors3.conf
/usr/bin/lsns:
bind-file: $SNAP/usr/bin/lsns
parts:
deps:
plugin: nil
source: .
source-type: local
override-build: |
bash ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive -i netdata-all
netdata:
plugin: nil
source: .
source-type: local
build-packages:
- libpcre2-dev
override-build: |
sh ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build
mkdir -p $SNAPCRAFT_PART_INSTALL/usr/sbin/ \
$SNAPCRAFT_PART_INSTALL/usr/share \
$SNAPCRAFT_PART_INSTALL/usr/libexec \
$SNAPCRAFT_PART_INSTALL/usr/local \
$SNAPCRAFT_PART_INSTALL/usr/lib \
$SNAPCRAFT_PART_INSTALL/var/cache \
$SNAPCRAFT_PART_INSTALL/var/lib \
$SNAPCRAFT_PART_INSTALL/etc
rm -rf $SNAPCRAFT_PART_INSTALL/var/{cache,lib}/netdata
rm -rf $SNAPCRAFT_PART_INSTALL/usr/{share,lib,libexec}/netdata
mv /usr/share/netdata $SNAPCRAFT_PART_INSTALL/usr/share/
mv /usr/libexec/netdata $SNAPCRAFT_PART_INSTALL/usr/libexec/
mv /usr/lib/netdata $SNAPCRAFT_PART_INSTALL/usr/lib/
mv /var/cache/netdata $SNAPCRAFT_PART_INSTALL/var/cache/
mv /var/lib/netdata $SNAPCRAFT_PART_INSTALL/var/lib/
mv /etc/netdata $SNAPCRAFT_PART_INSTALL/etc/
mv /usr/sbin/log2journal $SNAPCRAFT_PART_INSTALL/usr/sbin/
mv /usr/sbin/netdata $SNAPCRAFT_PART_INSTALL/usr/sbin/
mv /usr/sbin/netdata-claim.sh $SNAPCRAFT_PART_INSTALL/usr/sbin/
mv /usr/sbin/netdatacli $SNAPCRAFT_PART_INSTALL/usr/sbin/
mv /usr/sbin/systemd-cat-native $SNAPCRAFT_PART_INSTALL/usr/sbin/
cp -p "$SNAPCRAFT_PROJECT_DIR/snap/local/netdata.conf" "$SNAPCRAFT_PART_INSTALL/etc/netdata/netdata.conf"
stage-packages:
- curl
- iproute2
- libuv1
- lm-sensors
- util-linux
prime:
- -opt/netdata/var/cache/netdata/.keep
- -opt/netdata/var/lib/netdata/.keep
- -opt/netdata/var/log/netdata/.keep
apps:
agent:
command: usr/sbin/netdata -u root -D -P $SNAP_DATA/var/run/netdata/netdata.pid -c $SNAP_COMMON/etc/netdata/netdata.conf
daemon: simple
plugs:
- docker-support # Allows access to /prod/[0-9]*/limits
- hardware-observe
- kubernetes-support # cgroups (incl. systemd services)
- log-observe
- login-session-observe
- mount-observe
- network
- network-bind
- network-observe # network connections function
- network-setup-observe # ip{,4,6}.*, wireless.*, netfilter.conntrack_sockets
- system-observe # many disk.*, cpu and memory pressure, system.io
- time-control # needed for timex to call clock_adjtime to measure jitter
claim:
command: usr/sbin/netdata-claim.sh
plugs:
- network
cli:
command: usr/sbin/netdatacli
log2journal:
command: usr/sbin/log2journal
systemd-cat-native:
command: usr/sbin/systemd-cat-native
|