added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -0,0 +1,64 @@
# This is the configuration for charts.d.plugin
# Each of its collectors can read configuration eiher from this file
# or a NAME.conf file (where NAME is the collector name).
# The collector specific file has higher precedence.
# This file is a shell script too.
# -----------------------------------------------------------------------------
# number of seconds to run without restart
# after this time, charts.d.plugin will exit
# netdata will restart it, but a small gap
# will appear in the charts.d.plugin charts.
#restart_timeout=$[3600 * 4]
# when making iterations, charts.d can loop more frequently
# to prevent plugins missing iterations.
# this is a percentage relative to update_every to align its
# iterations.
# The minimum is 10%, the maximum 100%.
# So, if update_every is 1 second and time_divisor is 50,
# charts.d will iterate every 500ms.
# Charts will be called to collect data only if the time
# passed since the last time the collected data is equal or
# above their update_every.
#time_divisor=50
# -----------------------------------------------------------------------------
# the default enable/disable for all charts.d collectors
# the default is "yes"
# enable_all_charts="yes"
# BY DEFAULT ENABLED MODULES
# ap=yes
# nut=yes
# opensips=yes
# -----------------------------------------------------------------------------
# THESE NEED TO BE SET TO "force" TO BE ENABLED
# Nothing useful.
# Just an example charts.d plugin you can use as a template.
# example=force
# OLD MODULES THAT ARE NOW SERVED BY python.d.plugin
# apache=force
# cpufreq=force
# exim=force
# hddtemp=force
# mysql=force
# nginx=force
# phpfpm=force
# postfix=force
sensors=force
# squid=force
# tomcat=force
# OLD MODULES THAT ARE NOW SERVED BY NETDATA DAEMON
# cpu_apps=force
# mem_apps=force
# load_average=force

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,89 @@
# -*- coding: utf-8 -*-
# Description: gpu netdata python.d module
# Author:
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import os
import re
import time
from subprocess import Popen, PIPE
from bases.FrameworkServices.SimpleService import SimpleService
update_every = 4
priority = 90000
ORDER = [
'usage',
]
CHARTS = {
'usage': {
'options': [None, 'Usage', 'percent', 'usage', 'gpu.usage', 'line'],
'lines': [
['usage', 'Usage', 'absolute', 0, 100]
]
},
}
_DATA_TEMPLATE = {
'usage': 0,
}
def getpipeoutput(cmds):
p = Popen(cmds[0], stdout = PIPE, shell = True)
processes=[p]
for x in cmds[1:]:
p = Popen(x, stdin = p.stdout, stdout = PIPE, shell = True)
processes.append(p)
output = p.communicate()[0]
for p in processes:
p.wait()
return output.decode('utf-8').rstrip('\n')
class Service(SimpleService):
def __init__(self, configuration=None, name=None):
SimpleService.__init__(self, configuration=configuration, name=name)
self.order = ORDER
self.definitions = CHARTS
self._orig_name = ""
self.sysfs_on = 0
self.sysfs_start = 0
def check(self):
return True
def _get_data(self):
on = 0
off = 0
idle = 0
suspend = 0
try:
data = dict(_DATA_TEMPLATE)
percent_data = 0.0
result = getpipeoutput(["cat /sys/kernel/debug/gc/idle"]).split('\n')
for line in result:
parts = line.split(' ')
subline = " ".join(parts[1:]).replace(" ", "")
subline = re.sub("ns", "", subline, flags=re.UNICODE)
subline = re.sub(",", "", subline, flags=re.UNICODE)
if parts[0] == "On:":
on = int(subline)
if parts[0] == "Off:":
off = int(subline)
if parts[0] == "Idle:":
idle = int(subline)
if parts[0] == "Suspend:":
suspend = int(subline)
percent_data = float( (on - self.sysfs_on) * 100 / (on + off + idle + suspend - self.sysfs_start) )
self.sysfs_on = on
self.sysfs_start = on + off + idle + suspend
data['usage'] = percent_data * 100
return data
except (ValueError, AttributeError):
return None

View File

@@ -0,0 +1,3 @@
#!/bin/sh
kill -2 `pidof /usr/sbin/netdata`

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
# SPDX-License-Identifier: GPL-3.0-or-later
[Unit]
Description=Real time performance monitoring
RequiresMountsFor=/var
After=network.target
[Service]
Type=simple
ExecStartPre=/bin/mkdir -p /var/log/netdata
ExecStartPre=/bin/chown -R root:netdata /var/log/netdata
ExecStart=/usr/sbin/netdata -D -u root
ExecStop=/usr/bin/kill_netdata
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,112 @@
# netdata python.d.plugin configuration
#
# This file is in YaML format.
# Generally the format is:
#
# name: value
#
# Enable / disable the whole python.d.plugin (all its modules)
enabled: yes
# ----------------------------------------------------------------------
# Enable / Disable python.d.plugin modules
#default_run: yes
#
# If "default_run" = "yes" the default for all modules is enabled (yes).
# Setting any of these to "no" will disable it.
#
# If "default_run" = "no" the default for all modules is disabled (no).
# Setting any of these to "yes" will enable it.
# Enable / Disable explicit garbage collection (full collection run). Default is enabled.
gc_run: yes
# Garbage collection interval in seconds. Default is 300.
gc_interval: 300
# apache: yes
# apache_cache has been replaced by web_log
# adaptec_raid: yes
# alarms: yes
# am2320: yes
# anomalies: no
apache_cache: no
# beanstalk: yes
# bind_rndc: yes
# boinc: yes
# ceph: yes
chrony: no
# changefinder: no
# couchdb: yes
# dns_query_time: yes
# dnsdist: yes
# dockerd: yes
# dovecot: yes
# elasticsearch: yes
# energid: yes
# this is just an example
example: no
# exim: yes
# fail2ban: yes
# freeradius: yes
# gearman: yes
go_expvar: no
# gunicorn_log has been replaced by web_log
gunicorn_log: no
# haproxy: yes
# hddtemp: yes
# httpcheck: yes
hpssa: no
# icecast: yes
# ipfs: yes
# isc_dhcpd: yes
# litespeed: yes
logind: no
# megacli: yes
# memcached: yes
# mongodb: yes
# monit: yes
# mysql: yes
# nginx: yes
# nginx_plus: yes
# nvidia_smi: yes
# nginx_log has been replaced by web_log
nginx_log: no
# nsd: yes
# ntpd: yes
# openldap: yes
# oracledb: yes
# ovpn_status_log: yes
# phpfpm: yes
# portcheck: yes
# postfix: yes
# postgres: yes
# powerdns: yes
# proxysql: yes
# puppet: yes
# rabbitmq: yes
# redis: yes
# rethinkdbs: yes
# retroshare: yes
# riakkv: yes
# samba: yes
sensors: yes
# smartd_log: yes
# spigotmc: yes
# springboot: yes
# squid: yes
# traefik: yes
# tomcat: yes
# tor: yes
# uwsgi: yes
# varnish: yes
# w1sensor: yes
# web_log: yes
# zscores: no
gpu: yes

View File

@@ -0,0 +1,262 @@
<!DOCTYPE html>
<!-- SPDX-License-Identifier: GPL-3.0-or-later -->
<html lang="en">
<head>
<title>NetData STMicroelectronics Dashboard</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
</head>
<script>
// this section has to appear before loading dashboard.js
// Select a theme.
// uncomment on of the two themes:
//var netdataTheme = 'default'; // this is white
var netdataTheme = 'slate'; // this is dark
// Set the default netdata server.
// on charts without a 'data-host', this one will be used.
// the default is the server that dashboard.js is downloaded from.
// var netdataServer = 'http://my.server:19999/';
</script>
<!--
Load dashboard.js
to host this HTML file on your web server,
you have to load dashboard.js from the netdata server.
So, pick one the two below
If you pick the first, set the server name/IP.
The second assumes you host this file on /usr/share/netdata/web
and that you have chown it to be owned by netdata:netdata
-->
<!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
<script type="text/javascript" src="dashboard.js?v20190902-0"></script>
<script>
// Set options for TV operation
// This has to be done, after dashboard.js is loaded
// destroy charts not shown (lowers memory on the browser)
NETDATA.options.current.destroy_on_hide = true;
// set this to false, to always show all dimensions
NETDATA.options.current.eliminate_zero_dimensions = true;
// lower the pressure on this browser
NETDATA.options.current.concurrent_refreshes = false;
// if the tv browser is too slow (a pi?)
// set this to false
NETDATA.options.current.parallel_refresher = true;
// always update the charts, even if focus is lost
// NETDATA.options.current.stop_updates_when_focus_is_lost = false;
// Since you may render charts from many servers and any of them may
// become offline for some time, the charts will break.
// This will reload the page every RELOAD_EVERY minutes
var RELOAD_EVERY = 5;
setTimeout(function(){
location.reload();
}, RELOAD_EVERY * 60 * 1000);
</script>
<body>
<center><H1>STM32MP1 Dashboard</H1></center>
<div style="width: 100%; text-align: center; display: inline-block;">
<!-- -------------------------------- -->
<div style="width: 100%; height: 23vh; text-align: center; display: inline-block;">
<div style="width: 100%; height: 100%; text-align: center; display: inline-block;">
<div style="width: 49%; height: 100%; align: center; display: inline-block;">
General
<br/>
<div data-netdata="system.cpu"
data-title="CPUs Average"
data-chart-library="gauge"
data-width="20%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#DDDD00"
></div>
<div data-netdata="cpu.cpu0"
data-title="CPU0 Average"
data-chart-library="gauge"
data-width="20%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#DD0000"
></div>
<div data-netdata="cpu.cpu1"
data-title="CPU1 Average"
data-chart-library="gauge"
data-width="20%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#0000DD"
></div>
<div data-netdata="sensors.cpu_thermal_virtual_0_temperature"
data-title="Temperature"
data-chart-library="gauge"
data-width="20%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#0000DD"
></div>
</div>
<div style="width: 49%; height: 100%; align: center; display: inline-block;">
Network
<br/>
<div data-netdata="system.net"
data-dimensions="received"
data-chart-library="easypiechart"
data-title=""
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
<div data-netdata="system.net"
data-dimensions="sent"
data-chart-library="easypiechart"
data-title="IPv4 Outbound"
data-units="kbps"
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
<div data-netdata="system.ip"
data-dimensions="received"
data-title="IP Bandwidth"
data-chart-library="easypiechart"
data-units="kbps"
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
<div data-netdata="system.ip"
data-dimensions="sent"
data-title="IP Bandwidth"
data-chart-library="easypiechart"
data-units="kbps"
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
</div>
</div>
</div>
<!-- -------------------------------- -->
<!-- CPU -->
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="system.cpu"
data-title="CPU usage"
data-chart-library="dygraph"
data-width="100%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
</div>
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="cpu.cpu0"
data-title="CPU usage of CPU0"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
<div data-netdata="cpu.cpu1"
data-title="CPU usage of CPU1"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
</div>
<!-- temperature-->
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="sensors.cpu_thermal_virtual_0_temperature"
data-title="Temperature"
data-chart-library="dygraph"
data-width="100%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[35, 100]"
></div>
</div>
<!-- NET -->
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="system.net"
data-title="Physical Network Interfaces Aggregated Bandwidth"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
<div data-netdata="system.ip"
data-title="IP Bandwidth"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
</div>
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="net.end0"
data-title="Bandwith END0"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
<div data-netdata="net.end1"
data-title="Bandwith END1"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,270 @@
<!DOCTYPE html>
<!-- SPDX-License-Identifier: GPL-3.0-or-later -->
<html lang="en">
<head>
<title>NetData STMicroelectronics Dashboard</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
</head>
<script>
// this section has to appear before loading dashboard.js
// Select a theme.
// uncomment on of the two themes:
//var netdataTheme = 'default'; // this is white
var netdataTheme = 'slate'; // this is dark
// Set the default netdata server.
// on charts without a 'data-host', this one will be used.
// the default is the server that dashboard.js is downloaded from.
// var netdataServer = 'http://my.server:19999/';
</script>
<!--
Load dashboard.js
to host this HTML file on your web server,
you have to load dashboard.js from the netdata server.
So, pick one the two below
If you pick the first, set the server name/IP.
The second assumes you host this file on /usr/share/netdata/web
and that you have chown it to be owned by netdata:netdata
-->
<!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
<script type="text/javascript" src="dashboard.js?v20190902-0"></script>
<script>
// Set options for TV operation
// This has to be done, after dashboard.js is loaded
// destroy charts not shown (lowers memory on the browser)
NETDATA.options.current.destroy_on_hide = true;
// set this to false, to always show all dimensions
NETDATA.options.current.eliminate_zero_dimensions = true;
// lower the pressure on this browser
NETDATA.options.current.concurrent_refreshes = false;
// if the tv browser is too slow (a pi?)
// set this to false
NETDATA.options.current.parallel_refresher = true;
// always update the charts, even if focus is lost
// NETDATA.options.current.stop_updates_when_focus_is_lost = false;
// Since you may render charts from many servers and any of them may
// become offline for some time, the charts will break.
// This will reload the page every RELOAD_EVERY minutes
var RELOAD_EVERY = 5;
setTimeout(function(){
location.reload();
}, RELOAD_EVERY * 60 * 1000);
</script>
<body>
<center><H1>STM32MP15 Dashboard</H1></center>
<div style="width: 100%; text-align: center; display: inline-block;">
<!-- -------------------------------- -->
<div style="width: 100%; height: 23vh; text-align: center; display: inline-block;">
<div style="width: 100%; height: 100%; text-align: center; display: inline-block;">
<div style="width: 49%; height: 100%; align: center; display: inline-block;">
General
<br/>
<div data-netdata="system.cpu"
data-title="CPUs Average"
data-chart-library="gauge"
data-width="18%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#DDDD00"
></div>
<div data-netdata="cpu.cpu0"
data-title="CPU0 Average"
data-chart-library="gauge"
data-width="18%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#DD0000"
></div>
<div data-netdata="cpu.cpu1"
data-title="CPU1 Average"
data-chart-library="gauge"
data-width="18%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#0000DD"
></div>
<div data-netdata="netdata.runtime_gpu"
data-title="GPU Average"
data-chart-library="gauge"
data-width="18%"
data-height="100%"
data-after="-300"
data-points="300"
></div>
<div data-netdata="sensors.cpu_thermal_virtual_0_temperature"
data-title="Temperature"
data-chart-library="gauge"
data-width="18%"
data-height="100%"
data-after="-300"
data-points="300"
data-colors="#0000DD"
data-gauge-max-value="100"
data-gauge-stroke-color="#373B40"
></div>
<div style="width: 49%; height: 100%; align: center; display: inline-block;">
Network
<br/>
<div data-netdata="system.net"
data-dimensions="received"
data-chart-library="easypiechart"
data-title=""
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
<div data-netdata="system.net"
data-dimensions="sent"
data-chart-library="easypiechart"
data-title="IPv4 Outbound"
data-units="kbps"
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
<div data-netdata="system.ip"
data-dimensions="received"
data-title="IP Bandwidth"
data-chart-library="easypiechart"
data-units="kbps"
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
<div data-netdata="system.ip"
data-dimensions="sent"
data-title="IP Bandwidth"
data-chart-library="easypiechart"
data-units="kbps"
data-width="20%"
data-height="50%"
data-after="-300"
data-points="300"
></div>
</div>
</div>
</div>
<!-- -------------------------------- -->
<!-- CPU -->
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="system.cpu"
data-title="CPU usage"
data-chart-library="dygraph"
data-width="100%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
</div>
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="cpu.cpu0"
data-title="CPU usage of CPU0"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
<div data-netdata="cpu.cpu1"
data-title="CPU usage of CPU1"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
</div>
<!-- temperature-->
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="sensors.cpu_thermal_virtual_0_temperature"
data-title="Temperature"
data-chart-library="dygraph"
data-width="100%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[35, 100]"
></div>
</div>
<!-- NET -->
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="system.net"
data-title="Physical Network Interfaces Aggregated Bandwidth"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
<div data-netdata="system.ip"
data-title="IP Bandwidth"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
</div>
<div style="width: 100%; height: 12vh; text-align: center; display: inline-block;">
<br/>
<div data-netdata="net.end0"
data-title="Bandwith end0"
data-chart-library="dygraph"
data-width="49%"
data-height="50%"
data-after="-300"
data-dygraph-valuerange="[0, 100]"
></div>
<div data-netdata="gpu.usage"
data-title="GPU usage"
data-chart-library="dygraph"
data-width="100%"
data-height="100%"
data-after="-300"
></div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,33 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}/:"
SRC_URI:append:stm32mp1common = " file://stm32mp15.html "
SRC_URI:append:stm32mp1common = " file://stm32mp13.html "
SRC_URI:append = " file://python.d.conf "
SRC_URI:append = " file://kill_netdata "
#SRC_URI:append = " file://charts.d.conf "
SRC_URI:append = " file://dashboard_info.js "
SRC_URI:append = " file://gpu.chart.py "
RDEPENDS:${PN}:append = " python3-multiprocessing "
do_install:append() {
install -d ${D}${sysconfdir}/netdata
install -d ${D}${datadir}/netdata/web
install -d ${D}${bindir}/netdata/web
install -m 0644 ${WORKDIR}/python.d.conf ${D}${sysconfdir}/netdata/
install -m 0755 ${WORKDIR}/kill_netdata ${D}${bindir}/
#install -m 0644 ${WORKDIR}/charts.d.conf ${D}${sysconfdir}/netdata/
install -m 0644 ${WORKDIR}/dashboard_info.js ${D}${datadir}/netdata/web/
install -d ${D}${libexecdir}/netdata/python.d/
install -m 0644 ${WORKDIR}/gpu.chart.py ${D}${libexecdir}/netdata/python.d/
}
do_install:append:stm32mp1common() {
install -d ${D}${datadir}/netdata/web
install -m 0644 ${WORKDIR}/stm32mp15.html ${D}${datadir}/netdata/web/
install -m 0644 ${WORKDIR}/stm32mp13.html ${D}${datadir}/netdata/web/
}