Hi,
I see many entries in my Alloy GUI, I would say all of them:
[IN]: timestamp: 2025-05-27T15:04:14.011820356Z, entry: Tue, 27 May 2025 15:04:11 INFO #1234567890 refresh took 0.100202 secs., labels: {filename=“/var/log/app/app_component_name.20250527.log”}, structured_metadata: {}
[IN]: timestamp: 2025-05-27T15:04:14.01205386Z, entry: Tue, 27 May 2025 15:04:11 INFO #1234567890 Two listener children, system too slow? Wait a period, labels: {filename=“/var/log/app/app_component_name.20250527.log”}, structured_metadata: {}
[IN]: timestamp: 2025-05-27T15:04:14.01206296Z, entry: Tue, 27 May 2025 15:04:11 INFO #1234567890 RegisterServer got answer: True, labels: {filename=“/var/log/app/app_component_name.20250527.log”}, structured_metadata: {}
And over here is my config.alloy
which should pass only ERROR, as I understand correctly?
loki.write "loki_logs" {
endpoint {
url = "https://my-loki-endpoint.local:3100/loki/api/v1/push"
}
}
local.file_match "app_logs" {
path_targets = [
{
"__path__" = "/var/log/app/app_component_name.20250527.log",
"job" = "app_job",
},
]
sync_period = "5s"
}
loki.source.file "scrape_logs" {
targets = local.file_match.app_logs.targets
forward_to = [loki.process.filter_logs.receiver]
}
loki.process "filter_logs" {
forward_to = [loki.write.loki_logs.receiver]
stage.multiline {
firstline = `^Traceback \(most recent call last\):`
max_wait_time = "3s"
}
stage.match {
selector = "{filename=~\".+\"} !~ \"(ERROR)\""
action = "drop"
}
stage.regex {
expression = "(?i)(?P<level>ERROR)\\s+(?P<module>[a-zA-Z0-9_.]+)"
}
stage.regex {
source = "filename"
expression = "(?P<path>/var/log/.+/)(?P<filename>[^/]+)$"
}
stage.labels {
values = {
level = "level",
module = "module",
filename = "filename",
path = "path",
}
}
stage.limit {
rate = 100
burst = 500
}
}
logging {
level = "debug"
}
Why do I see also INFO log level in Alloy GUI?