# HG changeset patch # User Mahlon E. Smith # Date 1518468552 28800 # Node ID 160338bb2822ec7691b19686470a76fcc502a887 # Parent 72c9c6f0b713b5134fd1dd2a186dfd47cf0e109f Add README. diff -r 72c9c6f0b713 -r 160338bb2822 README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Mon Feb 12 12:49:12 2018 -0800 @@ -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.* +``` + diff -r 72c9c6f0b713 -r 160338bb2822 netdata_tsrelay.nim --- a/netdata_tsrelay.nim Mon Feb 12 12:26:16 2018 -0800 +++ b/netdata_tsrelay.nim Mon Feb 12 12:49:12 2018 -0800 @@ -139,8 +139,6 @@ ## 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, "..."