Skip to main content

System monitoring daemon that logs to InfluxDB

Project description

# Garena Metrics Collector

A system monitoring daemon for recording server statistics in [InfluxDB](http://influxdb.com/).

## Installation

You can install this via PyPI, like so:

```sh
sudo pip install garena_metrics_collector.zip
```

And then all you have to do is go to **/etc/garena_metrics_collector/** and edit the **config.ini** 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
garena_metrics_collector start
```

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|
|---|----|-----------|
|**usage**|*int*|Percent used by user processes|


### **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|


### **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/garena_metrics_collector/collectors/** 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 not in cache:
reutrn []

return [{
"measurement": "your_measurement",
"fields": {
'point': rand.randint(0, 100) - cache['last']
}
}]
```
Tags are auto added, including server public IP and hostname(configurable in hostname).

## 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

metrics-collector-0.2.0.tar.gz (17.8 kB view details)

Uploaded Source

File details

Details for the file metrics-collector-0.2.0.tar.gz.

File metadata

File hashes

Hashes for metrics-collector-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0b6b768075faecb2b5606882daf253e991d0f2c4dc830095f0db1c10a979ecd1
MD5 c36e9be67109bc41ff8836c956c66d77
BLAKE2b-256 a130bcda458ea076bc30cac0539eb85e01853aee72dbdb36f4201a24a3a70fed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page