1
0
mirror of https://github.com/coltoneshaw/CS-Repro-Mattermost.git synced 2025-12-23 10:01:30 +01:00
Files
CS-Repro-Mattermost/files/alloy/config.alloy
Sven Hüster 7971f12489 switching out promtail for alloy (#22)
* rework grafana log ingestion using alloy

* fix docker-compose.yml formatting
2025-05-12 13:34:23 +02:00

59 lines
1.4 KiB
Plaintext

// File-based log sources
loki.source.file "mattermost_logs" {
targets = [
{ "__path__" = "/mattermost/logs/mattermost.log", "filename" = "/logs-node-1/mattermost.log", "job" = "mattermost" },
]
forward_to = [loki.process.mm_logs_processor.receiver]
}
loki.source.file "mattermost_advanced_logs" {
targets = [
{ "__path__" = "/mattermost/logs/advancedLogs.log", "filename" = "/logs-node-1/advancedLogs.log", "job" = "mattermost" },
]
forward_to = [loki.process.mm_logs_processor.receiver]
}
loki.source.file "mattermost_ldap_logs" {
targets = [
{ "__path__" = "/mattermost/logs/advancedLdapLogs.log", "filename" = "/logs-node-1/advancedLdapLogs.log", "job" = "mattermost" },
]
forward_to = [loki.process.mm_logs_processor.receiver]
}
// Process Mattermost logs
loki.process "mm_logs_processor" {
// First, try to parse as JSON
stage.json {
expressions = {
ts = "timestamp",
log_level = "level",
log_msg = "msg",
log_caller = "caller",
}
}
// Set labels based on extracted fields
stage.labels {
values = {
level = "log_level",
}
}
forward_to = [loki.write.loki.receiver]
}
// API endpoint for direct log pushing
loki.source.api "push_api" {
http {
listen_address = "0.0.0.0"
listen_port = 9999
}
forward_to = [loki.write.loki.receiver]
}
// Send all logs to Loki
loki.write "loki" {
endpoint {
url = "http://loki:3100/loki/api/v1/push"
}
}