Path: blob/main/operations/observability/mixins/Makefile
3608 views
.DEFAULT_GOAL:=help
# HELP
# https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
.PHONY: help
help: ## This help
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
JSONNET_FMT := jsonnetfmt -n 2 --max-blank-lines 2 --string-style s --comment-style s
all: fmt lint ## Format and lint jsonnet files
clean: ## Delete files marked in .gitignore
git clean -Xfd .
fmt: ## Format jsonnet files
find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
xargs -n 1 -- $(JSONNET_FMT) -i
lint: ## Lint jsonnet files
find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
while read f; do \
$(JSONNET_FMT) "$$f" | diff -u "$$f" -; \
done
prometheus_alerts.yaml: ## Create prometheus alerts yaml file
jsonnet -S alerts.jsonnet > $@
promtool-lint: prometheus_alerts.yaml # Check generated prometheus alerts yaml file
promtool check rules prometheus_alerts.yaml
vendor:
jb install
unit-tests: vendor ## Run jsonnet unit tests
@echo 'Testing alert severity labels'
jsonnet tests/alertsSeverityLabel.jsonnet -J vendor/
@echo 'Testing alert descripion annotation'
jsonnet tests/alertsDescriptionAnnotation.jsonnet -J vendor/
dashboards_out: ## Generate dashboards json files
@mkdir -p dashboards_out
jsonnet -J vendor -m dashboards_out dashboards.jsonnet
.PHONY: help all clean fmt lint prometheus_alerts.yaml promtool-lint vendor unit-tests dashboards_out