Update README and receiver-specific pages

This commit is contained in:
Thomas Roehl 2022-02-28 17:26:28 +01:00
parent 33fec95eac
commit d40163cf8f
3 changed files with 28 additions and 19 deletions

View File

@ -9,32 +9,20 @@ The configuration file for the receivers is a list of configurations. The `type`
```json ```json
{ {
"myreceivername" : { "myreceivername" : {
"type": "receiver-type",
<receiver-specific configuration> <receiver-specific configuration>
} }
} }
``` ```
## Type `nats` This allows to specify
```json ## Available receivers
{
"type": "nats",
"address": "<nats-URI or hostname>",
"port" : "<portnumber>",
"subject": "<subscribe topic>"
}
```
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 # Contributing own receivers
A receiver contains a few functions and is derived from the type `Receiver` (in `metricReceiver.go`): 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<Typename>(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()`. For an example, check the [sample receiver](./sampleReceiver.go)
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.

21
receivers/natsReceiver.md Normal file
View File

@ -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
{
"<name>": {
"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

View File

@ -10,7 +10,7 @@ The `prometheus` receiver can be used to scrape the metrics of a single `prometh
"type": "prometheus", "type": "prometheus",
"address" : "testpromhost", "address" : "testpromhost",
"port" : "12345", "port" : "12345",
"port" : "/prometheus", "path" : "/prometheus",
"interval": "5s", "interval": "5s",
"ssl" : true, "ssl" : true,
} }