throttling, abuse-protection & logging/monitoring pass
This commit is contained in:
56
docker/alloy/config.alloy
Normal file
56
docker/alloy/config.alloy
Normal file
@@ -0,0 +1,56 @@
|
||||
// پیکربندیِ حداقلیِ Grafana Alloy — جایگزینِ Promtail (که EOL شده،
|
||||
// مارچ ۲۰۲۶). دقیقاً همون کاری که promtail-config.yml قبلی میکرد:
|
||||
// فایلِ لاگِ JSON اپِ Django رو tail میکنه، level/logger رو بهعنوانِ
|
||||
// لیبل استخراج میکنه، و به Loki push میکنه. هیچ لاگِ جدیدی تولید
|
||||
// نمیکنه و پیامِ لاگها دستنخورده میمونه.
|
||||
|
||||
// مرحلهی ۱: پیدا کردنِ فایلهای لاگ روی ولومِ مشترک (django_logs)
|
||||
local.file_match "django_logs" {
|
||||
path_targets = [{
|
||||
__path__ = "/var/log/django/*.log",
|
||||
job = "django",
|
||||
app = "tadrisino",
|
||||
}]
|
||||
}
|
||||
|
||||
// مرحلهی ۲: خوندنِ همون فایلها
|
||||
loki.source.file "django_logs" {
|
||||
targets = local.file_match.django_logs.targets
|
||||
forward_to = [loki.process.django_logs.receiver]
|
||||
}
|
||||
|
||||
// مرحلهی ۳: پردازش — استخراجِ level/logger/timestamp از JSONِ هر خط
|
||||
// (فرمتِ config.log_formatters.JSONLogFormatter) و ستکردنِ اونا بهعنوانِ
|
||||
// لیبل، دقیقاً همارزِ stage.json + stage.labels + stage.timestamp در
|
||||
// promtail-config.yml قبلی.
|
||||
loki.process "django_logs" {
|
||||
stage.json {
|
||||
expressions = {
|
||||
level = "",
|
||||
logger = "",
|
||||
timestamp = "",
|
||||
}
|
||||
}
|
||||
|
||||
stage.labels {
|
||||
values = {
|
||||
level = "",
|
||||
logger = "",
|
||||
}
|
||||
}
|
||||
|
||||
// استفاده از timestampِ خودِ لاگ (نه زمانِ رسیدنِ خط به Alloy)
|
||||
stage.timestamp {
|
||||
source = "timestamp"
|
||||
format = "RFC3339"
|
||||
}
|
||||
|
||||
forward_to = [loki.write.local.receiver]
|
||||
}
|
||||
|
||||
// مرحلهی ۴: ارسال به Loki
|
||||
loki.write "local" {
|
||||
endpoint {
|
||||
url = "http://loki:3100/loki/api/v1/push"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user