System monitoring daemon that logs to InfluxDB
Project description
# InfluxDB-sysmond
A system monitoring daemon for recording server statistics in [InfluxDB](http://influxdb.com/).
## WIP
This software is a WIP and the configuration file is most likely going to change often, so errors might happen and other weird things. So just be warned.
## Installation
You can install this via PyPI, like so:
```sh
sudo pip install influxdb-sysmond
```
And then all you have to do is go to **/etc/influxdb-sysmond/** and edit the **config.ini.dist** file there and you should be ready to log.
Assuming that you renamed the config file to **config.ini**, you can go ahead and run this:
```sh
influxdb-sysmond /etc/influxdb-sysmond/config.ini
```
And the daemon will start logging everything to the InfluxDB server you specified.
## Included Collectors
This is a list of some of the default packaged collectors that are enabled:
### **cpu** - `system.cpu`
#### Returns percentages of CPU allocation
|Key|Type|Description|
|---|----|-----------|
|**user**|*int*|Percent used by user processes|
|**nice**|*int*|Percent used by nice'd processes|
|**system**|*int*|Percent used by the system|
|**idle**|*int*|Percent of CPU that's idle|
### **disk** - `system.disk.*`
#### Returns information about disk usage
|Key|Type|Description|
|---|----|-----------|
|**total**|*long*|Total available space *in bytes*|
|**used**|*long*|Space used *in bytes*|
|**free**|*long*|Free space *in bytes*|
**Note**: This plugin also returns a combined total available under the `system.disk.total` series.
### **load** - `system.load`
#### Returns system load information
|Key|Type|Description|
|---|----|-----------|
|**1m**|*int*|1 minute load average|
|**5m**|*int*|5 minute load average|
|**15m**|*int*|15 minute load average|
### **memory** - `system.memory`
#### Returns system memory allocations and usage
All of these values are calculated in *bytes*.
|Key|Type|Description|
|---|----|-----------|
|**total**|*long*|Total memory|
|**available**|*long*|Total uncached memory|
|**used**|*long*|Total cached memory|
|**active**|*long*|Total actively used memory|
|**inactive**|*long*|Total allocated but unused memory|
|**free**|*long*|Total unallocated memory|
### **net** - `system.net.*`
#### Returns network information seperated by interface
|Key|Type|Description|
|---|----|-----------|
|**bytes_tx**|*long*|Total bytes sent|
|**bytes_rx**|*long*|Total bytes received|
|**packets_rx**|*long*|Total packets received|
|**packets_tx**|*long*|Total packets sent|
|**errors_in**|*long*|Total incoming packet errors|
|**errors_out**|*long*|Total outgoing packet errors|
|**dropped_in**|*long*|Total incoming dropped packets|
|**dropped_out**|*long*|Total outgoing dropped packets|
## Custom Collectors
You can go ahead and add collectors to the **/etc/influxdb-sysmond/collectors/** (making sure to import them in the **__init__.py** file) and we will automatically run them in the cycles and report their values.
Here's some examples:
**collectors/example.py**:
```python
import rand
class ExampleCollector(CollectorThread):
identifier = 'example' # This is required!
def collect(self, cache):
# Stateful cache (across collections)
if last in cache:
cache['last'] = rand.randint(0, 100)
return [{
"name": "your.point",
"columns": [
"walk"
],
"points": [
rand.randint(0, 100)
]
}]
```
And import it in **collectors/__init__.py**:
```python
from .example import *
```
## License
MIT license, see the **LICENSE** file.
A system monitoring daemon for recording server statistics in [InfluxDB](http://influxdb.com/).
## WIP
This software is a WIP and the configuration file is most likely going to change often, so errors might happen and other weird things. So just be warned.
## Installation
You can install this via PyPI, like so:
```sh
sudo pip install influxdb-sysmond
```
And then all you have to do is go to **/etc/influxdb-sysmond/** and edit the **config.ini.dist** file there and you should be ready to log.
Assuming that you renamed the config file to **config.ini**, you can go ahead and run this:
```sh
influxdb-sysmond /etc/influxdb-sysmond/config.ini
```
And the daemon will start logging everything to the InfluxDB server you specified.
## Included Collectors
This is a list of some of the default packaged collectors that are enabled:
### **cpu** - `system.cpu`
#### Returns percentages of CPU allocation
|Key|Type|Description|
|---|----|-----------|
|**user**|*int*|Percent used by user processes|
|**nice**|*int*|Percent used by nice'd processes|
|**system**|*int*|Percent used by the system|
|**idle**|*int*|Percent of CPU that's idle|
### **disk** - `system.disk.*`
#### Returns information about disk usage
|Key|Type|Description|
|---|----|-----------|
|**total**|*long*|Total available space *in bytes*|
|**used**|*long*|Space used *in bytes*|
|**free**|*long*|Free space *in bytes*|
**Note**: This plugin also returns a combined total available under the `system.disk.total` series.
### **load** - `system.load`
#### Returns system load information
|Key|Type|Description|
|---|----|-----------|
|**1m**|*int*|1 minute load average|
|**5m**|*int*|5 minute load average|
|**15m**|*int*|15 minute load average|
### **memory** - `system.memory`
#### Returns system memory allocations and usage
All of these values are calculated in *bytes*.
|Key|Type|Description|
|---|----|-----------|
|**total**|*long*|Total memory|
|**available**|*long*|Total uncached memory|
|**used**|*long*|Total cached memory|
|**active**|*long*|Total actively used memory|
|**inactive**|*long*|Total allocated but unused memory|
|**free**|*long*|Total unallocated memory|
### **net** - `system.net.*`
#### Returns network information seperated by interface
|Key|Type|Description|
|---|----|-----------|
|**bytes_tx**|*long*|Total bytes sent|
|**bytes_rx**|*long*|Total bytes received|
|**packets_rx**|*long*|Total packets received|
|**packets_tx**|*long*|Total packets sent|
|**errors_in**|*long*|Total incoming packet errors|
|**errors_out**|*long*|Total outgoing packet errors|
|**dropped_in**|*long*|Total incoming dropped packets|
|**dropped_out**|*long*|Total outgoing dropped packets|
## Custom Collectors
You can go ahead and add collectors to the **/etc/influxdb-sysmond/collectors/** (making sure to import them in the **__init__.py** file) and we will automatically run them in the cycles and report their values.
Here's some examples:
**collectors/example.py**:
```python
import rand
class ExampleCollector(CollectorThread):
identifier = 'example' # This is required!
def collect(self, cache):
# Stateful cache (across collections)
if last in cache:
cache['last'] = rand.randint(0, 100)
return [{
"name": "your.point",
"columns": [
"walk"
],
"points": [
rand.randint(0, 100)
]
}]
```
And import it in **collectors/__init__.py**:
```python
from .example import *
```
## License
MIT license, see the **LICENSE** file.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file influxdb-sysmond-0.0.6.tar.gz
.
File metadata
- Download URL: influxdb-sysmond-0.0.6.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e91b48770560ebe3e3d23754b9297004ce43f496c2e1eb1c74bd2b007ef5167 |
|
MD5 | e50a344b1f23b025040ff38db70d1d66 |
|
BLAKE2b-256 | 5ebbce745fe484dc79272e69b807d09fa750a9ffe6dbf78614436e564f401060 |