README.md
changeset 1 160338bb2822
child 3 f34855556f4d
equal deleted inserted replaced
0:72c9c6f0b713 1:160338bb2822
       
     1 
       
     2 Netdata-TSRelay
       
     3 ===============
       
     4 
       
     5 What's this?
       
     6 ------------
       
     7 
       
     8 This program is designed to accept JSON streams from
       
     9 [Netdata](http://netdata.io) clients, and write metrics to a PostgreSQL table -
       
    10 specifically, [Timescale](http://timescale.com) backed tables (though
       
    11 that's not technically a requirement.)
       
    12 
       
    13 
       
    14 Installation
       
    15 ------------
       
    16 
       
    17 You'll need a working [Nim](http://nim-lang.org) build environment to
       
    18 create the binary.
       
    19 
       
    20 Simply run `make release` to produce the binary.  Put it wherever you
       
    21 please.
       
    22 
       
    23 
       
    24 Configuration
       
    25 -------------
       
    26 
       
    27 There are a few assumptions that should be satisfied before running
       
    28 this.
       
    29 
       
    30 ### Database setup
       
    31 
       
    32 You'll need to create the destination table.
       
    33 
       
    34 ```sql
       
    35 CREATE TABLE netdata (
       
    36 	time timestamptz default now() not null,
       
    37 	host text not null,
       
    38 	metrics jsonb default '{}'::jsonb not null
       
    39 );
       
    40 ```
       
    41 
       
    42 Index it however you please based on how you intend to query the data,
       
    43 including JSON functional indexing, etc.  See PostgreSQL documentation
       
    44 for details.
       
    45 
       
    46 Strongly encouraged:  Promote this table to a Timescale "hypertable".
       
    47 See Timescale docs for that.
       
    48 
       
    49 
       
    50 
       
    51 ### Netdata
       
    52 
       
    53 You'll likely want to pare down what netdata is sending.  Here's an
       
    54 example configuration for `netdata.conf`:
       
    55 
       
    56 ```
       
    57 [backend]
       
    58     hostname           = your-hostname
       
    59     enabled            = yes
       
    60     type               = json
       
    61     data source        = average
       
    62     destination        = machine-where-netdata-tsrelay-lives:14866
       
    63     prefix             = n
       
    64     update every       = 10
       
    65     buffer on failures = 6
       
    66     send charts matching = !cpu.cpu* !ipv6* nfs.rpc net.* net_drops.* net_packets.* !system.interrupts* system.* disk.* disk_space.* disk_ops.* mem.* users.*
       
    67 ```
       
    68