Add Makefile and README

This commit is contained in:
Vitaly Zhuravlev 2022-05-11 19:19:45 +04:00
parent 9e6bb75a2a
commit 5e83738d1d
2 changed files with 67 additions and 0 deletions

View file

@ -0,0 +1,34 @@
JSONNET_FMT := jsonnetfmt -n 2 --max-blank-lines 1 --string-style s --comment-style s
.PHONY: all
all: build dashboards_out prometheus_alerts.yaml
vendor: jsonnetfile.json
jb install
.PHONY: build
build: vendor
.PHONY: fmt
fmt:
find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
xargs -n 1 -- $(JSONNET_FMT) -i
.PHONY: lint
lint: build
find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
while read f; do \
$(JSONNET_FMT) "$$f" | diff -u "$$f" -; \
done
mixtool lint mixin.libsonnet
dashboards_out: mixin.libsonnet config.libsonnet $(wildcard dashboards/*)
@mkdir -p dashboards_out
mixtool generate dashboards mixin.libsonnet -d dashboards_out
prometheus_alerts.yaml: mixin.libsonnet alerts/*.libsonnet
mixtool generate alerts mixin.libsonnet -a prometheus_alerts.yaml
.PHONY: clean
clean:
rm -rf dashboards_out prometheus_alerts.yaml

View file

@ -0,0 +1,33 @@
# Apache HTTP server mixin
Apache HTTP mixin is a set of configurable Grafana dashboards and alerts based on the metrics exported by the [Apache exporter](https://github.com/Lusitaniae/apache_exporter).
![image](https://user-images.githubusercontent.com/14870891/167886371-92c60942-bbfa-43d2-ba16-ee13e629020a.png)
Install tools before generating dashboards and alerts:
```bash
go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@latest
go install github.com/monitoring-mixins/mixtool/cmd/mixtool@latest
```
For linting and formatting, you would also need `mixtool` and `jsonnetfmt` installed. If you
have a working Go development environment, it's easiest to run the following:
```bash
go install github.com/google/go-jsonnet/cmd/jsonnetfmt@latest
```
The files in `dashboards_out` need to be imported
into your Grafana server. The exact details will be depending on your environment.
`prometheus_alerts.yaml` needs to be imported into Prometheus.
Edit `config.libsonnet` if required and then build JSON dashboard files for Grafana:
```bash
make
```
For more advanced uses of mixins, see
https://github.com/monitoring-mixins/docs.