mirror of
				https://github.com/ClusterCockpit/cc-metric-collector.git
				synced 2025-10-30 16:45:07 +01:00 
			
		
		
		
	Update README and receiver-specific pages
This commit is contained in:
		| @@ -9,32 +9,20 @@ The configuration file for the receivers is a list of configurations. The `type` | ||||
| ```json | ||||
| { | ||||
|   "myreceivername" : { | ||||
|     "type": "receiver-type", | ||||
|     <receiver-specific configuration> | ||||
|   } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Type `nats` | ||||
| This allows to specify | ||||
|  | ||||
| ```json | ||||
| { | ||||
|   "type": "nats", | ||||
|   "address": "<nats-URI or hostname>", | ||||
|   "port" : "<portnumber>", | ||||
|   "subject": "<subscribe topic>" | ||||
| } | ||||
| ``` | ||||
| ## 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<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()`. | ||||
|  | ||||
| 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) | ||||
|   | ||||
							
								
								
									
										21
									
								
								receivers/natsReceiver.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								receivers/natsReceiver.md
									
									
									
									
									
										Normal 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 | ||||
| @@ -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, | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user