diff --git a/src/apache_metrics.rs b/src/apache_metrics.rs
index dc89f42..7b982eb 100644
--- a/src/apache_metrics.rs
+++ b/src/apache_metrics.rs
@@ -1,12 +1,23 @@
+use prometheus_client::metrics::counter::Counter;
+use prometheus_client::metrics::family::Family;
 use prometheus_client::registry::Registry;
 
 #[derive(Clone)]
-pub struct ApacheMetrics {}
+pub struct ApacheMetrics {
+	pub requests_total: Family<(&'static str, String), Counter>
+}
 
 impl ApacheMetrics {
 	pub fn new() -> (Registry, ApacheMetrics) {
 		let mut registry = <Registry>::default();
-		let metrics = ApacheMetrics {};
+		
+		let requests_total = Family::<(&'static str, String), Counter>::default();
+		registry.register("apache_requests", "Number of received requests", Box::new(requests_total.clone()));
+		
+		let metrics = ApacheMetrics {
+			requests_total
+		};
+		
 		return (registry, metrics);
 	}
 }
diff --git a/src/log_watcher.rs b/src/log_watcher.rs
index 9d3a916..bd93f3e 100644
--- a/src/log_watcher.rs
+++ b/src/log_watcher.rs
@@ -36,8 +36,9 @@ async fn read_logs(log_files: Vec<LogFilePath>, metrics: ApacheMetrics) -> io::R
 		let event_result = file_reader.next_line().await?;
 		if let Some(event) = event_result {
 			match label_lookup.get(event.source()) {
-				Some(label) => {
+				Some(&label) => {
 					println!("[LogWatcher] Received line from \"{}\": {}", label, event.line());
+					metrics.requests_total.get_or_create(&("file", label.clone())).inc();
 				}
 				None => {
 					println!("[LogWatcher] Received line from unknown file: {}", event.source().display());