Add support to collect keycloak application metrics to prometheus (#1556)

Partly fixes #1010
diff --git a/roles/keycloak/vars/main.yml b/roles/keycloak/vars/main.yml
index b4bbf26..a03de36 100644
--- a/roles/keycloak/vars/main.yml
+++ b/roles/keycloak/vars/main.yml
@@ -47,6 +47,7 @@
     - --spi-events-listener-jboss-logging-success-level=info
     - --spi-events-listener-jboss-logging-error-level=warn
     - --transaction-xa-enabled=false
+    - --metrics-enabled=true
   auth:
     adminPassword: "{{ keycloak_admin_password }}"
     adminUser: "{{ keycloak_admin_username }}"
@@ -70,3 +71,5 @@
     failureThreshold: 120
   nodeSelector:
     openstack-control-plane: enabled
+  metrics:
+    enabled: true
diff --git a/roles/kube_prometheus_stack/vars/main.yml b/roles/kube_prometheus_stack/vars/main.yml
index 277c937..08cc8dc 100644
--- a/roles/kube_prometheus_stack/vars/main.yml
+++ b/roles/kube_prometheus_stack/vars/main.yml
@@ -394,6 +394,18 @@
                 targetLabel: application
               - *relabeling_set_pod_name_to_instance
               - *relabeling_drop_all_kubernetes_labels
+      - name: keycloak
+        jobLabel: application
+        namespaceSelector:
+          matchNames:
+            - auth-system
+        selector:
+          matchLabels:
+            app.kubernetes.io/component: metrics
+            app.kubernetes.io/name: keycloak
+        endpoints:
+          - port: http
+            relabelings: *relabelings_instance_to_pod_name
       - name: memcached
         jobLabel: application
         namespaceSelector: