* SAP counters to database
* making rrd works
* Finished SAP polling + graphing
* cleaning up
* resolved ./lnms dev:check failure
* added db_schema and fixed style
* Fixed style
* recoverd file
* fixed
* Clean up
* fixed
* using graphPopup function
* Refactor test for GitHub Actions
* Checkout pull request HEAD commit instead of merge commit
* Fetch changed files from API instead of git
* HEAD commit
* Origin
* Fix env
* force full unit checks on gh actions change
* Fix DB conn
* Update test.yml
* Also set port in PDO connection
* Exit with correct exit code
* Update CiHelper.php
* Update test.yml
* Update CiHelper.php
* Update Proc.php
* Cleanups
Remove extra unit test run on php 7.4
Add names that will hopefully show in github.
Remove redundant DB env variables.
* Fix
Shorter names
and DB_TEST env is required
* Change command for information purposes
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Change mempools summary graph to show values
put swap on the negative axis
fix swap classification
* fix whitespace
* fix incorrect class
fix rrd rename logic
* Style
* missed one
* observe with the correct class
* Change mempools summary graph to show values
put swap on the negative axis
fix swap classification
* fix whitespace
* fix incorrect class
fix rrd rename logic
* Style
* missed one
* mempools to modern module
quick hacky hrstorage port
* port ucd-snmp-mib to Mempools
* Populate DB for ucd
Prep for yaml
* initial yaml attempt
* more complex conversions
fixes to YamlDiscovery, make leading $ optional and allow mib::oid format
* walk full tables and skip values
normalize percentages above 100
* handle precent only ones (specify total as 100)
* Move default polling out of YamlMempoolsDiscovery
* fixes
* Update test data hrstorage should be correct.
* perc_warn for hrstorage
* Host Resources, record buffer, cached, and shared
* Host Resources is always better, don't do both HR and UCD
* fix unix, include warning levels
* variable size
* consolidate skip_values
* define mempools schema
* number instead of integer
* more schema refactor
* one more skip_values reference
* throw error for invalid oid translation
aos6
* a* and Cisco
* updated test data
* update almost all hrstorage data files
* b*
* c* with test data
use standard cache for hrStorage
* use cache for storage module too
* hand bsnmp properly
* bdcom
* exclude total oid from yaml so it is not polled
May add a way to ignore this behavior and poll it, but I don't know if that is needed.
* automatically handle percent only values
* ciscowlc
* only poll used or free if we have used, free, and total.
* fix skipping
* the dlinkoning
fix find value when value "name" is numeric
* support numeric oids
* dnos/ftos attempt
* I guess we can't filter on total > 0
* edgecos
* e*
* f WIP
* f*
* gwd (aka g*)
* h* + procurve
* i*
* j*
* m*
* support 0% used memory (however unlikely)
* n*
* CISCO-PROCESS-MIB memory, share cache with processors module
* ignore mempools with invalid total
* p*
* quanta
* r*
fix raisecom mibs terribly broken
* s-z
* style fixes
* Move VRP back to PHP and make it actually work
* fix zynos
* update schema
* Update Cisco processor data for description bug fixes
* fix comware processors
* comware mempools with memory size
default precision to 1
* sophos-xg updated data
* hrstorage use ram size for buffers, cache, and shared
* Show memory available instead of free in device overview
* UCD, use same rrd format, store available instead of free in the db.
* Calculate availability for HOST-RESOURCES-MIB
* Convert UCD to standard polling
* rename old rrd files
* initial graph work
* graph WIP
* Graph looking decent
* Graph looking decent for hr
* remove old ucd_graph code
* handle availability mempool
more graph cleanup
* color adjustments
* remove accidental free calculation
* Update test data and fix corner cases
* fis pfsense
* update schema
* add default value for mempool_class
* fix whitespace
* update schema
* update schema correctly
* one more time
* fortigate_1500d-sensors missing oids
* Update docs.
* fix indent
* add implements MempoolsDiscovery explicitly to OS
* remove ucd_memory graph references
remove unused device_memory graph
* remove unused functions
* set devices with mempools to rediscover to prevent/minimize gaps
* use a subquery
* add overview graph
* port health mempools table
* Update device mempool
* only show overview if multiple
* Don't override user set warn percentages in discovery
* fix missed usage
* fix style
* Safety check to not rename rrd files incorrectly if migration has not been run.
* Fix overview percent bar and represent available and used on the bar
* missed an item to convert to mempool_class
* percent on the wrong side
* Make usage of logger, also harden exception logging
* Make usage of hardened command_runner
This is a hardened version of subprocess.call which handles timeout, encoding and various errors that may happen during execution
* Remove unused exception logging
* Fix bogus exception logging
* Rename exception to match log line
* Make command_runner pylint friendly under Unix
* Add copyrights to my parts of code
* Faster initial database creation
Add db dumps to improve initial db migration
On my test system 13s -> 7s, a 46% reduction.
Should help out a lot on systems like RPi
* lnms schema:dump command
--snapshots saves db snapshots, otherwise it saves the yaml
* fix style
* fix timezones...
* not working with in-memory db yet
remove build.sql
* Use a proxy server for the PagerDuty transport.
We don't use the get_guzzle_proxy() function since tcp:// doesn't work
with all of the HTTP transports that Guzzle supports. Instead we use
the standard get_proxy() function.
Tested against Squid
* formatting only
* snmpwalk_cache_oid handle multiline strings
* remove useless function
* some output has no space after equals
* airos-af-ltu use hr processors
* don't try to append with empty strings
* fix changed test data due to fix
* revert smartax
* better regex
additional check
* split siteboss 530 and 550 into multiple OS
* add more sensors to siteboss550 and new Percent sensor
* fix contact closure event state values
* split os polling for siteboss to siteboss530 and siteboss550
* add test unit for siteboss550, rename test unit for siteboss to siteboss530
* refactor siteboss os polling to \Librenms\OS
* implement OSPolling to Sitebos550
* force save in pollOS() to keep custom sysName during polling
* updated unit test
* update device graphs
* remove pollOS and extra save()
* siteboss550 no longer extends OSPolling
* update siteboss550 test data
* update discoverOS() to match recent os discovery changes
* styleCI changes
* fix siteboss hardware discovery; add check to OS polling if os_group .inc file exists
* collapse siteboss to single OS, implement siteboss sensors in advanced discovery
* add siteboss unit tests
* removed unneeded OS disco defs
* styleCI changes
* more styleCI changes
* split siteboss os to siteboss530 and siteboss550
* split siteboss os to siteboss530 and siteboss550
* move php polling back into yaml
* keep original siteboss OS name
* resave snmp data for siteboss OS
* resave snmp data for siteboss550 OS
* Implement locks in the file cache
* Replace custom locks
* implement restore lock
Used when re-hydrating
* remove legacy use statements
* Add class descriptions
* Fix style
* Default to database cache driver
* missed cache_locks table
prevent chicken-egg issue
* style fixes
* Remove custom file lock implementation
* missed items from file cache
* Update schema definition
hmm, other schema noise must be from manual modification as this is generated from a freshly migrated db.
* require predis, it is pure python, so no harm in adding
* and set predis as the default client
* All os detection now uses Yaml
Move OS detection code into the Core module.
Defer all OS with snmp queries.
Add snmpwalk option.
Port ubnt and mobileiron to yaml.
* Silly ide refactor
* Add simple tag-parsing of colors and highlights in alerts
* Fixing a few CodeClimate-issues
* Fixing a missing ;
* Fixing some more typography
* Whitespace...
* Deduplicate code
* Missing ; - too much python lately...
* Fix end of function name
* Simplifying sendAlert a bit
* Keeping up with PR#12141
* ; again...
* this->sendAlert...
* Handle more signals
* Flush buffers before exiting process
This ensures log messages aren't lost
* Restart process before jobs have finished
If there is a very log running job it can cause service restart to
take over 5 minutes.
We tweak the order of things to make sure that running processes
continue, but nothing more is scheduled.
The worst case impact is that a pollling/discovery job gets
scheduled twice, but this should not be a big issue - this should
only occur at most once per day.
* Remove python 3.8 feature
* Ensure that processes from the previous invocation are reaped
* Correct typo's
* Attach subprocess descriptors to /dev/null
Occasionally, PHP would throw a fit and crash when its stdout went
away. To avoid this, we attach stdout to devnull.
This means we lost output of daily.sh - but this is already recorded
in $LOGDIR/daily.log
* Don't immediately schedule long running jobs
To avoid the situation where the maintenance reload happens or a sighup,
then a second long running job is immediately started, we wait
(`last_[poll/discovery]_timetaken` * 1.25) seconds before scheduling
any jobs.
* Add `psutil` to requirements
* Add support for "systemctl reload" to the unit files
* Add a fallback for systems that don't have psutil
* Reduce CPU load when psutil is not installed
* Don't avoid double polling by extending the timeout
This shouldn't happen due to locks
* Remove fallback option
* Remove extra variable
* Fix issue introduced during rebase
* Fix issue introduced when fixing issue introduced during rebase
* Make psutil optional