Single binary meta-monitoring
Meta monitoring for monolithic mode deployments involves some additional configuration. This approach does not use the Kubernetes Monitoring Helm chart.
Metrics
Configure Alloy or Prometheus to scrape the Loki metrics endpoint, adding the additional labels that are expected by the mixin dashboards, alerts, and recording rules:
Alloy
prometheus.scrape "loki" {
targets = [{
__address__ = "localhost:3100",
cluster = "prod",
namespace = "default",
job = "default/loki-single-binary",
pod = "loki-single-binary",
container = "loki",
}]
forward_to = [prometheus.remote_write.default.receiver]
}
prometheus.remote_write "default" {
endpoint {
url = "<PROMETHEUS_REMOTE_WRITE_URL>"
}
}Prometheus
scrape_configs:
- job_name: loki
static_configs:
- targets: ['localhost:3100']
labels:
cluster: prod
namespace: default
job: default/loki-single-binary
pod: loki-single-binary
container: lokiMixins
To generate the mixins:
Install jb.
Install mixtool.
Clone the Loki repository from Github.
git clone https://github.com/grafana/loki cd lokiCheck out the tag that matches the version of Loki you are running, so that the dashboards, alerts, and recording rules match the metrics your Loki cluster exposes. For example, if you are running Loki 3.7.6:
git checkout v3.7.6Create the output directory.
mkdir production/loki-mixin-compiled-single-binaryNavigate to the mixin directory.
cd production/loki-mixinUse
jbto install mixin dependencies and generate thevendordirectory.jb installCreate the mixin configuration file
single-binary.libsonnet.cat <<EOF > single-binary.libsonnet local loki = import 'mixin.libsonnet'; loki + { _config+:: { meta_monitoring+: { enabled: true, }, canary+: { // Whether or not to include the loki-canary dashboard. // Set to false if you don't run loki-canary. enabled: true, }, promtail+: { // Whether or not to include promtail specific dashboards enabled: false, }, // Tunes histogram recording rules to aggregate over this interval. // Set to at least twice the scrape interval; otherwise, recording rules will output no data. // Set to four times the scrape interval to account for edge cases: https://www.robustperception.io/what-range-should-i-use-with-rate/ recording_rules_range_interval: '5m', }, } EOFGenerate dashboards, alerts, and recording rules.
mixtool generate all \ --output-alerts ../loki-mixin-compiled-single-binary/alerts.yaml \ --output-rules ../loki-mixin-compiled-single-binary/rules.yaml \ --directory ../loki-mixin-compiled-single-binary/dashboards \ single-binary.libsonnetSee the generated dashboards, alerts, and recording rules in the
production/loki-mixin-compiled-single-binarydirectory.Follow the instructions in the Install Mixins documentation to set up the dashboards, alerts, and recordings.


