Add README.
This commit is contained in:
parent
e305686d6d
commit
aebe51c9e8
2 changed files with 68 additions and 2 deletions
68
README.md
Normal file
68
README.md
Normal 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.*
|
||||
```
|
||||
|
||||
|
|
@ -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, "..."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue