Add README.

This commit is contained in:
Mahlon E. Smith 2018-02-12 12:49:12 -08:00
parent e305686d6d
commit aebe51c9e8
2 changed files with 68 additions and 2 deletions

68
README.md Normal file
View file

@ -0,0 +1,68 @@
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.*
```

View file

@ -139,8 +139,6 @@ proc serverloop: void =
## and start serving incoming netdata streams.
let db = open( "", "", "", conf.dbopts )
echo "Successfully connected to the backend database."
#SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720 * INTERVAL '1 second';'
#db.close
var server = newSocket()
echo "Listening for incoming connections on port ", conf.listen_port, "..."