chainlink_exporter/README.md

55 lines
2.8 KiB
Markdown

## Chainlink oracle exporter
**⚠️ Deprecation warning ⚠️:** Certus One is no longer running a Chainlink node and this exporter
is unmaintained. It can't monitor Fluxmonitor and OCR jobs - see the monitoring channel in
Chainlink's Slack for alternatives.
---
This prometheus exporter watches a Chainlink oracle smart contract on the Ethereum blockchain and measures metrics on
request fulfillment.
In order to track whether the exporter is alive and following the chain we export `cl_mon_height` which indicates the
last block the exporter has seen.
### How to build
Running `make build` will build artifacts to `bin`.
The `Dockerfile` can also be used to build a container.
We provide a prebuilt container image on [DockerHub](https://hub.docker.com/r/certusone/chainlink_exporter): `certusone/chainlink_exporter`
### Configuration
The configuration needs to be passed in via the environment.
| Name | Description |
|------|-------------|
| LADDR | Listening address (e.g. `:8080`).
| RPC | Websocket URL of the ethereum node to connect to. |
| ADDRESS | The address of the oracle contract to watch. |
| NODE_ADDRESS | The address of the node that's fulfilling the requests. |
| LINK_ADDRESS | The address of the LINK ERC20 token contract. Defaults to the mainnet contract. |
### Metrics
| Name | Type | Description |
|------|-------------|----------|
| cl_mon_height | gauge | Last processed block number. |
| cl_mon_last_request | gauge | Block number in which the last request was received. |
| cl_mon_last_response | gauge | Block number in which the last response was sent from the oracle. |
| cl_mon_response_time_bucket | histogram | Number of blocks taken to fulfill requests. Histograms are partitioned by the label `spec_id`. |
| cl_mon_missed | counter | Number of missed requests. Labels indicate job/spec id, requester address. |
| cl_mon_fulfilled | counter | Number of fulfilled requests. Labels indicate job/spec id, requester address. |
| cl_mon_revenue | counter | Rewards collected in LINK. Labels indicate job/spec id, requester address and whether the request containing this payment was fulfilled successfully. **Only payments of fulfilled requests are withdrawable.** |
| cl_mon_eth_balance | gauge | Eth balance of the node account. |
| cl_mon_link_balance | gauge | LINK balance of the oracle contract. The value with `type=balance` is the ERC20 balance. The value with `type=withdrawable` is the withdrawable balance. |
### Error handling
In case of errors during startup the program will panic. Errors during runtime are printed to the console and might
lead to the exporter not processing blocks. This will be visible in prometheus as `cl_mon_height` will stop increasing.
The client will automatically try to reconnect and -subscribe once the endpoint becomes available again.