diff --git a/.gitlab/development-values.yaml b/.gitlab/development-values.yaml
index 66028e145be4f518daef5729b1e732a3bf2ce1af..1a756bdf674a82cb4ea5b816851e6bd00bb1dfd8 100644
--- a/.gitlab/development-values.yaml
+++ b/.gitlab/development-values.yaml
@@ -8,10 +8,14 @@ podDisruptionBudget:
   enabled: true
   minAvailable: 1
   maxUnavailable:
+podAnnotations:
+  prometheus.io/scrape: "true"
+  prometheus.io/path: /metrics
+  prometheus.io/port: "80"
 ingress:
   annotations:
     certmanager.k8s.io/cluster-issuer: letsencrypt-prod
     nginx.ingress.kubernetes.io/configuration-snippet: |
       if ($host = "www.metager3.de") {
           return 301 https://metager3.de$request_uri;
-      }
\ No newline at end of file
+      }
diff --git a/.gitlab/production-values.yaml b/.gitlab/production-values.yaml
index 1855172fc1919d5d85da663e5b507c9f7bc3b793..9d9541ad96b961592b96a7bc2c19795a1e5ba4e4 100644
--- a/.gitlab/production-values.yaml
+++ b/.gitlab/production-values.yaml
@@ -6,8 +6,12 @@ hpa:
   maxReplicas: 25
 podDisruptionBudget:
   enabled: true
-  minAvailable: 5
+  minAvailable: 4
   maxUnavailable:
+podAnnotations:
+  prometheus.io/scrape: "true"
+  prometheus.io/path: /metrics
+  prometheus.io/port: "80"
 ingress:
   annotations:
     certmanager.k8s.io/cluster-issuer: letsencrypt-prod
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index 21c9784cbd9a1dcbcef500101649a878978ba76f..ddf8c24cb904c239ca3ae53450ef4767d8f0e0b6 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -44,6 +44,11 @@ class Handler extends ExceptionHandler
      */
     public function render($request, Exception $exception)
     {
+        if ($request->is('*/meta/meta.ger3*')) {
+            $registry = \Prometheus\CollectorRegistry::getDefault();
+            $histogram = $registry->getOrRegisterHistogram('metager', 'result_histogram', 'counts total number of returned results', [], [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]);
+            $histogram->observe(0);
+        }
         return parent::render($request, $exception);
     }
 
diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php
index 4f0bcbdac6387a1d90a32e2109f77d040d0c7d83..5c7a9a8d354a6346169e969cb35c00e565544a52 100644
--- a/app/Http/Controllers/MetaGerSearch.php
+++ b/app/Http/Controllers/MetaGerSearch.php
@@ -122,6 +122,10 @@ class MetaGerSearch extends Controller
             dd($timings);
         }
 
+        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $counter = $registry->getOrRegisterCounter('metager', 'result_counter', 'counts total number of returned results', []);
+        $counter->incBy(sizeof($metager->getResults()));
+        
         return $resultpage;
     }
 
@@ -183,6 +187,7 @@ class MetaGerSearch extends Controller
         ];
         $result["nextSearchLink"] = $metager->nextSearchLink();
 
+        $newResults = 0;
         foreach ($metager->getResults() as $index => $resultTmp) {
             if ($resultTmp->new) {
                 if ($metager->getFokus() !== "bilder") {
@@ -196,6 +201,7 @@ class MetaGerSearch extends Controller
                     $result['newResults'][$index] = $html;
                     $result["imagesearch"] = true;
                 }
+                $newResults++;
             }
         }
 
@@ -211,6 +217,11 @@ class MetaGerSearch extends Controller
 
         $result["finished"] = $finished;
 
+        if($newResults > 0){
+            $registry = \Prometheus\CollectorRegistry::getDefault();
+            $counter = $registry->getOrRegisterCounter('metager', 'result_counter', 'counts total number of returned results', []);
+            $counter->incBy($newResults);
+        }
         // Update new Engines
         Cache::put("loader_" . $metager->getSearchUid(), $metager->getEngines(), 1 * 60);
         return response()->json($result);
diff --git a/chart/values.yaml b/chart/values.yaml
index f4508a0baf071005b5a9876c66f9a17feca716bc..0641dce2ad6efb74a0e22bf123e485308987a060 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -50,13 +50,13 @@ prometheus:
   metrics: false
 livenessProbe:
   path: "/"
-  initialDelaySeconds: 40
+  initialDelaySeconds: 20
   timeoutSeconds: 15
   scheme: "HTTP"
   probeType: "httpGet"
 readinessProbe:
   path: "/"
-  initialDelaySeconds: 30
+  initialDelaySeconds: 15
   timeoutSeconds: 15
   scheme: "HTTP"
   probeType: "httpGet"
diff --git a/composer.json b/composer.json
index 2f226d4725f83c9a6b08fd8488c71ef51ece476e..7abc86a96724ca0c7eeb71156d8e842812415ac9 100644
--- a/composer.json
+++ b/composer.json
@@ -19,7 +19,8 @@
         "mews/captcha": "^2.2",
         "monospice/laravel-redis-sentinel-drivers": "^2.6",
         "predis/predis": "^1.1",
-        "symfony/dom-crawler": "^4.1"
+        "symfony/dom-crawler": "^4.1",
+        "endclothing/prometheus_client_php": "^1.0"
     },
     "require-dev": {
         "beyondcode/laravel-dump-server": "^1.0",
diff --git a/routes/web.php b/routes/web.php
index 16b658253b881a5d38385eea7c4137c440d95e78..edc101c0a2262718362e14fef93bef9a56cd150b 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -1,6 +1,7 @@
 <?php
 
 use Jenssegers\Agent\Agent;
+use Prometheus\RenderTextFormat;
 
 /*
 |--------------------------------------------------------------------------
@@ -234,4 +235,14 @@ Route::group(
                     ->header('Content-Type', 'text/plain');
             });
         });
+
+        Route::get('metrics', function() {
+            $registry = \Prometheus\CollectorRegistry::getDefault();
+
+            $renderer = new RenderTextFormat();
+            $result = $renderer->render($registry->getMetricFamilySamples());
+
+            return response($result, 200)
+                ->header('Content-Type', RenderTextFormat::MIME_TYPE);
+        });
     });