diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..13d48f1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +production/ \ No newline at end of file diff --git a/Makefile b/Makefile index 2471f13..b74fcbb 100644 --- a/Makefile +++ b/Makefile @@ -8,3 +8,15 @@ help: helm-lint: ## Run helm linter $(MAKE) -BC charts/meta-monitoring lint + +MIXIN_PATH := production/loki-mixin +MIXIN_OUT_PATH_META_MONITORING := production/loki-mixin-compiled-meta-monitoring + +mixin: ## Create our version of the mixin + @rm -rf $(MIXIN_PATH) + ./scripts/clone_loki_mixin.sh + @rm -rf $(MIXIN_OUT_PATH_META_MONITORING) && mkdir $(MIXIN_OUT_PATH_META_MONITORING) + @cd $(MIXIN_PATH) && jb install + @mixtool generate all --output-alerts $(MIXIN_OUT_PATH_META_MONITORING)/alerts.yaml --output-rules $(MIXIN_OUT_PATH_META_MONITORING)/rules.yaml --directory $(MIXIN_OUT_PATH_META_MONITORING)/dashboards ${MIXIN_PATH}/mixin-meta-monitoring.libsonnet +# copy MIXIN_OUT_PATH_META_MONITORING dir to src + diff --git a/scripts/clone_loki_mixin.sh b/scripts/clone_loki_mixin.sh new file mode 100755 index 0000000..6a97e27 --- /dev/null +++ b/scripts/clone_loki_mixin.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +clean_up() { + test -d "$tmp_dir" && rm -fr "$tmp_dir" +} + +here=${PWD} + +tmp_dir=$( mktemp -d -t my-script ) +cd $tmp_dir + +echo "Cloning Loki" +git clone --filter=blob:none --no-checkout "https://github.com/grafana/loki" +cd loki +git sparse-checkout init --cone +git checkout main +git sparse-checkout set production/loki-mixin + +echo "Copying production/loki-mixin to ${here}" +cp -r production ${here} + +cd ${here} +cp scripts/mixin-meta-monitoring.libsonnet production/loki-mixin/ \ No newline at end of file diff --git a/scripts/mixin-meta-monitoring.libsonnet b/scripts/mixin-meta-monitoring.libsonnet new file mode 100644 index 0000000..51ce774 --- /dev/null +++ b/scripts/mixin-meta-monitoring.libsonnet @@ -0,0 +1,18 @@ +(import 'dashboards.libsonnet') + +(import 'alerts.libsonnet') + +(import 'recording_rules.libsonnet') + { + grafanaDashboardFolder: 'Loki Meta Monitoring', + + _config+:: { + internal_components: false, + + // The Meta Monitoring helm chart uses Grafana Alloy instead of promtail + promtail+: { + enabled: false, + }, + + meta_monitoring+: { + enabled: true, + }, + }, +}