2019-07-06 11:30:40 -07:00
|
|
|
# Node Mixin
|
|
|
|
|
2019-10-09 20:32:22 -07:00
|
|
|
_This is a work in progress. We aim for it to become a good role model for alerts
|
2019-07-06 11:30:40 -07:00
|
|
|
and dashboards eventually, but it is not quite there yet._
|
|
|
|
|
|
|
|
The Node Mixin is a set of configurable, reusable, and extensible alerts and
|
2019-10-09 20:32:22 -07:00
|
|
|
dashboards based on the metrics exported by the Node Exporter. The mixin creates
|
2019-07-06 11:30:40 -07:00
|
|
|
recording and alerting rules for Prometheus and suitable dashboard descriptions
|
|
|
|
for Grafana.
|
|
|
|
|
|
|
|
To use them, you need to have `jsonnet` (v0.13+) and `jb` installed. If you
|
|
|
|
have a working Go development environment, it's easiest to run the following:
|
|
|
|
```bash
|
|
|
|
$ go get github.com/google/go-jsonnet/cmd/jsonnet
|
|
|
|
$ go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb
|
|
|
|
```
|
|
|
|
|
|
|
|
_Note: The make targets `lint` and `fmt` need the `jsonnetfmt` binary, which is
|
|
|
|
currently not included in the Go implementation of `jsonnet`. For the time
|
|
|
|
being, you have to install the [C++ version of
|
|
|
|
jsonnetfmt](https://github.com/google/jsonnet) if you want to use `make lint`
|
|
|
|
or `make fmt`._
|
|
|
|
|
|
|
|
Next, install the dependencies by running the following command in this
|
|
|
|
directory:
|
|
|
|
```bash
|
|
|
|
$ jb install
|
|
|
|
```
|
|
|
|
|
|
|
|
You can then build the Prometheus rules files `node_alerts.yaml` and
|
|
|
|
`node_rules.yaml`:
|
|
|
|
```bash
|
|
|
|
$ make node_alerts.yaml node_rules.yaml
|
|
|
|
```
|
|
|
|
|
|
|
|
You can also build a directory `dashboard_out` with the JSON dashboard files
|
|
|
|
for Grafana:
|
|
|
|
```bash
|
|
|
|
$ make dashboards_out
|
|
|
|
```
|
|
|
|
|
2019-09-08 01:55:43 -07:00
|
|
|
Note that some of the generated dashboards require recording rules specified in
|
|
|
|
the previously generated `node_rules.yaml`.
|
|
|
|
|
2019-07-06 11:30:40 -07:00
|
|
|
For more advanced uses of mixins, see
|
|
|
|
https://github.com/monitoring-mixins/docs.
|
|
|
|
|