From d40163cf8f39fe2eac91ebbd2bd863ae7c4e0b34 Mon Sep 17 00:00:00 2001 From: Thomas Roehl Date: Mon, 28 Feb 2022 17:26:28 +0100 Subject: [PATCH] Update README and receiver-specific pages --- receivers/README.md | 24 ++++++------------------ receivers/natsReceiver.md | 21 +++++++++++++++++++++ receivers/prometheusReceiver.md | 2 +- 3 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 receivers/natsReceiver.md diff --git a/receivers/README.md b/receivers/README.md index 808dc74..70b209b 100644 --- a/receivers/README.md +++ b/receivers/README.md @@ -9,32 +9,20 @@ The configuration file for the receivers is a list of configurations. The `type` ```json { "myreceivername" : { + "type": "receiver-type", } } ``` -## Type `nats` +This allows to specify -```json -{ - "type": "nats", - "address": "", - "port" : "", - "subject": "" -} -``` +## Available receivers -The `nats` receiver subscribes to the topic `database` and listens on `address` and `port` for metrics in the InfluxDB line protocol. +- [`nats`](./natsReceiver.md): Receive metrics from the NATS network +- [`prometheus`](./prometheusReceiver.md): Scrape data from a Prometheus client # Contributing own receivers A receiver contains a few functions and is derived from the type `Receiver` (in `metricReceiver.go`): -* `Start() error` -* `Close()` -* `Name() string` -* `SetSink(sink chan lp.CCMetric)` -* `New(name string, config json.RawMessage)` -The data structures should be set up in `Init()` like opening a file or server connection. The `Start()` function should either start a go routine or issue some other asynchronous mechanism for receiving metrics. The `Close()` function should tear down anything created in `Init()`. - -Finally, the receiver needs to be registered in the `receiveManager.go`. There is a list of receivers called `AvailableReceivers` which is a map (`receiver_type_string` -> `pointer to NewReceiver function`). Add a new entry with a descriptive name and the new receiver. +For an example, check the [sample receiver](./sampleReceiver.go) diff --git a/receivers/natsReceiver.md b/receivers/natsReceiver.md new file mode 100644 index 0000000..4a7b7a4 --- /dev/null +++ b/receivers/natsReceiver.md @@ -0,0 +1,21 @@ +## `nats` receiver + +The `nats` receiver can be used receive metrics from the NATS network. The `nats` receiver subscribes to the topic `database` and listens on `address` and `port` for metrics in the InfluxDB line protocol. + +### Configuration structure + +```json +{ + "": { + "type": "nats", + "address" : "nats-server.example.org", + "port" : "4222", + "subject" : "subject" + } +} +``` + +- `type`: makes the receiver a `nats` receiver +- `address`: Address of the NATS control server +- `port`: Port of the NATS control server +- `subject`: Subscribes to this subject and receive metrics diff --git a/receivers/prometheusReceiver.md b/receivers/prometheusReceiver.md index 5fe6e46..83de7f6 100644 --- a/receivers/prometheusReceiver.md +++ b/receivers/prometheusReceiver.md @@ -10,7 +10,7 @@ The `prometheus` receiver can be used to scrape the metrics of a single `prometh "type": "prometheus", "address" : "testpromhost", "port" : "12345", - "port" : "/prometheus", + "path" : "/prometheus", "interval": "5s", "ssl" : true, }