// Sample config for Alloy
//
// For a full configuration reference, see https://grafana.com/docs/alloy
logging {
  level = "warn"
}

loki.relabel "journal" {
    forward_to = []

    rule {
        source_labels = ["__journal__systemd_unit"]
        target_label  = "application"
    }
    
    rule {
        source_labels = ["__journal__hostname"]
        target_label = "host"
    }

    rule {
        source_labels = ["__journal__transport"]
        target_label = "job"
    }
    
    rule {
        source_labels = ["__journal_priority_keyword"]
        target_label = "level"
    }

    rule {
        source_labels = ["__journal_syslog_identifier"]
        target_label = "syslog_identifier"
    }
}

discovery.relabel "syslog" {
    targets = []

    rule {
        source_labels = ["__syslog_message_hostname"]
        target_label  = "host"
    }

    rule {
        source_labels = ["__syslog_message_severity"]
        target_label  = "level"
    }

    rule {
        source_labels = ["__syslog_message_app_name"]
        target_label  = "application"
    }
}

loki.source.journal "read" {
    forward_to = [loki.write.grafana.receiver]
    relabel_rules = loki.relabel.journal.rules
    max_age = "12h"
}

loki.write "grafana" {
    endpoint {
        url = "https://{put-lokiurl-here}/loki/api/v1/push"
        basic_auth {
            username = "{put-username-here}"
            password = "{put-password-here}"
        }
    }
}
