| 8 Dec 2024 |
hexa | ruler = {
storage = {
type = "local";
local.directory = "/etc/loki/rules/";
};
rule_path = "/tmp/loki-rules-scratch";
alertmanager_url = "http://127.0.0.1:9093";
ring.kvstore.store = "inmemory";
};
| 19:35:51 |
hexa | so am I holding the ruler wrong? K900 maybe? | 19:36:01 |
K900 | Hmm | 19:40:06 |
K900 | Sus | 19:40:12 |
hexa | like I can't even browse the rules it loads, because that wants a stupid tenant id? 😄 | 19:43:37 |
hexa | # lokitool rules print --address https://loki.lossy.network --id=1
INFO[0000] no rule groups currently exist for this user
| 19:44:29 |
hexa |
When configured with auth_enabled: false, Loki uses a single tenant. [...] The single tenant ID will be the string fake.
| 19:45:11 |
hexa | # lokitool rules print --address https://loki.lossy.network --id=fake
INFO[0000] no rule groups currently exist for this user
| 19:45:21 |
hexa | so it doesn't even load the rules? 🤔 | 19:45:56 |
hexa | pretty sure this used to work before 3.0 | 19:46:56 |
hexa | ok, so the rules now need to be below ${local.directory}/<tenant>/ | 20:21:08 |
hexa |
caller=ruler.go:576 msg="unable to list rules" err="failed to list rule groups for user fake: failed to list rule group for user fake and namespace rules.yaml: error parsing /etc/loki/rules/fake/rules.yaml: /etc/loki/rules/fake/rules.yaml: yaml: unmarshal errors:\n line 1: field namespace not found in type rulefmt.RuleGroups"
| 20:21:17 |
hexa | and mine are now missing a namespace | 20:21:31 |
hexa | Redacted or Malformed Event | 20:26:17 |
hexa | so the linter is now happy with my rules file but loki isn't | 20:28:02 |
hexa | ok, so the linter adds a namespace key to the file and loki does not like it | 20:35:35 |
hexa | clownshow | 20:35:37 |
hexa | K900: getting back to your expression recommendation now | 20:36:03 |
hexa | rule_name=PostgresqlCollationMismatch rule_type=alerting query="{unit=\"postgresql.service\"} |~ \"database \\\"[^\\\"]+\\\" has a collation version mismatch\" | regexp \"database \\\"(?<database>[^\\\"]+)\\\"\"" query_hash=2906991201 msg="rule result is not a vector or scalar" err=null
| 20:36:21 |
hexa |
rule result is not a vector or scalar
| 20:36:33 |
hexa |  Download image.png | 20:37:52 |
hexa | at least that works now | 20:37:56 |
hexa | so count_over_time is always implied for event logging | 20:46:13 |
adamcstephens | i guess that makes sense? | 22:33:45 |
hexa | yeah, k900 implied it wasn't yesterday fwiw | 22:42:28 |
hexa | which would make queries much more easy to write in the face of how badly the feedback of the ruler is | 22:43:06 |
hexa | at least I'm now getting fast feedback | 22:46:27 |
hexa | building '/nix/store/3f7ww8pjj8v32w45vcflz6l7lvc767vp-rules.yaml.drv'...
ERRO[0000] unable parse rules file error="could not parse expression for alert 'PostgresqlCollationMismatch' in group 'postgresql': parse error at line 5, col 1: syntax error: unexpected $end, expecting )" file=/nix/store/b90hjjsvamndv0z2a9vqfz91w66lbc43-rules.yaml
lokitool: error: prepare operation unsuccessful, unable to parse rules files: file read error, try --help
error: builder for '/nix/store/3f7ww8pjj8v32w45vcflz6l7lvc767vp-rules.yaml.drv' failed with exit code 1;
last 2 log lines:
> ERRO[0000] unable parse rules file error="could not parse expression for alert 'PostgresqlCollationMismatch' in group 'postgresql': parse error at line 5, col 1: syntax error: unexpected $end, expecting )" file=/nix/store/b90hjjsvamndv0z2a9vqfz91w66lbc43-rules.yaml
> lokitool: error: prepare operation unsuccessful, unable to parse rules files: file read error, try --help
For full logs, run 'nix log /nix/store/3f7ww8pjj8v32w45vcflz6l7lvc767vp-rules.yaml.drv'.
| 22:46:30 |
hexa | finally | 22:50:39 |
hexa |  Download image.png | 22:50:39 |