README.md
author Mahlon E. Smith <mahlon@laika.com>
Mon, 12 Feb 2018 12:49:12 -0800
changeset 1 160338bb2822
child 3 f34855556f4d
permissions -rw-r--r--
Add README.


Netdata-TSRelay
===============

What's this?
------------

This program is designed to accept JSON streams from
[Netdata](http://netdata.io) clients, and write metrics to a PostgreSQL table -
specifically, [Timescale](http://timescale.com) backed tables (though
that's not technically a requirement.)


Installation
------------

You'll need a working [Nim](http://nim-lang.org) build environment to
create the binary.

Simply run `make release` to produce the binary.  Put it wherever you
please.


Configuration
-------------

There are a few assumptions that should be satisfied before running
this.

### Database setup

You'll need to create the destination table.

```sql
CREATE TABLE netdata (
	time timestamptz default now() not null,
	host text not null,
	metrics jsonb default '{}'::jsonb not null
);
```

Index it however you please based on how you intend to query the data,
including JSON functional indexing, etc.  See PostgreSQL documentation
for details.

Strongly encouraged:  Promote this table to a Timescale "hypertable".
See Timescale docs for that.



### Netdata

You'll likely want to pare down what netdata is sending.  Here's an
example configuration for `netdata.conf`:

```
[backend]
    hostname           = your-hostname
    enabled            = yes
    type               = json
    data source        = average
    destination        = machine-where-netdata-tsrelay-lives:14866
    prefix             = n
    update every       = 10
    buffer on failures = 6
    send charts matching = !cpu.cpu* !ipv6* nfs.rpc net.* net_drops.* net_packets.* !system.interrupts* system.* disk.* disk_space.* disk_ops.* mem.* users.*
```