mirror of
https://github.com/chylex/Apache-Prometheus-Exporter.git
synced 2025-05-21 14:34:06 +02:00
wip
This commit is contained in:
parent
54120e1b33
commit
589eaf4bc7
@ -6,7 +6,7 @@ use std::path::PathBuf;
|
|||||||
use linemux::{Line, MuxedLines};
|
use linemux::{Line, MuxedLines};
|
||||||
use tokio::sync::mpsc::UnboundedSender;
|
use tokio::sync::mpsc::UnboundedSender;
|
||||||
|
|
||||||
use crate::ApacheMetrics;
|
use crate::{ApacheMetrics, log_parser};
|
||||||
use crate::log_file_pattern::LogFilePath;
|
use crate::log_file_pattern::LogFilePath;
|
||||||
|
|
||||||
#[derive(Copy, Clone, PartialEq)]
|
#[derive(Copy, Clone, PartialEq)]
|
||||||
@ -77,22 +77,33 @@ impl<'a> LogWatcher<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_line(&mut self, event: Line, metrics: &ApacheMetrics) {
|
fn handle_line(&self, event: Line, metrics: &ApacheMetrics) {
|
||||||
match self.files.get(event.source()) {
|
if let Some(file) = self.files.get(event.source()) {
|
||||||
Some(metadata) => {
|
match file.kind {
|
||||||
let label = metadata.label;
|
LogFileKind::Access => self.handle_access_log_line(event.line(), file, metrics),
|
||||||
let (kind, family) = match metadata.kind {
|
LogFileKind::Error => self.handle_error_log_line(event.line(), file, metrics),
|
||||||
LogFileKind::Access => ("access log", &metrics.requests_total),
|
|
||||||
LogFileKind::Error => ("error log", &metrics.errors_total),
|
|
||||||
};
|
|
||||||
|
|
||||||
println!("[LogWatcher] Received {} line from \"{}\": {}", kind, label, event.line());
|
|
||||||
family.get_or_create(&metadata.get_label_set()).inc();
|
|
||||||
}
|
}
|
||||||
None => {
|
} else {
|
||||||
println!("[LogWatcher] Received line from unknown file: {}", event.source().display());
|
println!("[LogWatcher] Received line from unknown file: {}", event.source().display());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn handle_access_log_line(&self, line: &str, file: &LogFileInfo, metrics: &ApacheMetrics) {
|
||||||
|
match log_parser::AccessLogLineParts::parse(line) {
|
||||||
|
Ok(parts) => {
|
||||||
|
println!("[LogWatcher] Received access log line from \"{}\": {}", file.label, parts)
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
println!("[LogWatcher] Received access log line from \"{}\" with invalid format ({:?}): {}", file.label, err, line)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
metrics.requests_total.get_or_create(&file.get_label_set()).inc();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn handle_error_log_line(&self, line: &str, file: &LogFileInfo, metrics: &ApacheMetrics) {
|
||||||
|
println!("[LogWatcher] Received error log line from \"{}\": {}", file.label, line);
|
||||||
|
metrics.errors_total.get_or_create(&file.get_label_set()).inc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user