This is a personal project of monitoring system implemented via typescript/loopback4.
Code framework can be described as following:
+---------------------------+
| |
| LongRunningProcesses |
| |
| |
| => processes | +---------------------+
| => register --+----+---------| +-------------------+
| => unregister | | | | +------------------+ +--------------+
| | | +----| | Collectors |------ Compose of -------| Action |
+---------------------------+ | +---| | +-------|------+
| +----|-------------+ |
| | |
| v +--------+-------------------+
| +----------------------------+ | |
| | | | |
| | MemCache | +---------------+ +-------------+
| | | | SnmpAction | | SSHAction |
| | <key-value DB> | +---------------+ +-------------+
| | | | |
| +--------------|-------------+ | +----------+ |
| | +---| SnmpGet | |
| v | +----------+ |
| +--------------------+ | +-------------------+ |
| | | +---| SnmpTableColumn | |
+------------| Forwarder | +-------------------+ |
| | |
+----------|---------+ Remotely Configure
| |
----------------------------------------------------------------|-------------------------------------------------------------------|---------
+--------------------------------------------+ | +-----------------------------------+
| | | | |
| Loopback 4 Server(Port: 8085) | | +---------------------------- | Collectd |
| | | | | |
0 +--------------------------------------------+ | | +-----------------------------------+
-+- v v
/ \ +---------------------------------+ +--------------------------------+
| | | |
| Grafana(Port: 8087) | <----- | InfluxDB(Port: 8086) |
| | | |
+---------------------------------+ +--------------------------------+