You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2021/01/29 15:03:28 UTC

[camel-k] branch master updated: [ENTESB-15644] Fix monitoring test

This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git


The following commit(s) were added to refs/heads/master by this push:
     new c7e7496  [ENTESB-15644] Fix monitoring test
c7e7496 is described below

commit c7e7496a3498914994cdc94fa725f91fc2e3c384
Author: Lukas Lowinger <ll...@redhat.com>
AuthorDate: Thu Jan 28 17:39:08 2021 +0100

    [ENTESB-15644] Fix monitoring test
---
 .../openshift/monitoring/monitoringResources.sh    |  21 +++
 .../operator-pod-monitor.yaml}                     |  30 ++---
 .../resources/operator-prometheus-rule.yaml        | 145 +++++++++++++++++++++
 e2e/yaks/openshift/monitoring/yaks-config.yaml     |   4 +-
 4 files changed, 183 insertions(+), 17 deletions(-)

diff --git a/e2e/yaks/openshift/monitoring/monitoringResources.sh b/e2e/yaks/openshift/monitoring/monitoringResources.sh
new file mode 100644
index 0000000..3c11d9d
--- /dev/null
+++ b/e2e/yaks/openshift/monitoring/monitoringResources.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SOURCE_DIR=$( dirname "${BASH_SOURCE[0]}")
+RESOURCES_FOLDER="${SOURCE_DIR}/resources"
+oc create -n ${YAKS_NAMESPACE} -f $RESOURCES_FOLDER/operator-pod-monitor.yaml
+oc create -n ${YAKS_NAMESPACE} -f $RESOURCES_FOLDER/operator-prometheus-rule.yaml
\ No newline at end of file
diff --git a/e2e/yaks/openshift/monitoring/yaks-config.yaml b/e2e/yaks/openshift/monitoring/resources/operator-pod-monitor.yaml
similarity index 59%
copy from e2e/yaks/openshift/monitoring/yaks-config.yaml
copy to e2e/yaks/openshift/monitoring/resources/operator-pod-monitor.yaml
index 242ae05..f0d9e60 100644
--- a/e2e/yaks/openshift/monitoring/yaks-config.yaml
+++ b/e2e/yaks/openshift/monitoring/resources/operator-pod-monitor.yaml
@@ -15,19 +15,17 @@
 # limitations under the License.
 # ---------------------------------------------------------------------------
 
-config:
-  namespace:
-    temporary: true
-pre:
-  - name: ObtainToken
-    script: ./obtainToken.sh
-  - name: Camel-k install
-    run: |
-      kamel install -w -n ${YAKS_NAMESPACE} --monitoring=true
-  - name: Dependency install
-    script: ./dependencyInstall.sh
-  - name: Integration run
-    run: |
-      set +e
-      kamel run --name metrics Metrics.java -w -n $YAKS_NAMESPACE --dependency mvn:com.github.openshift-integration:camel-k-example-metrics-non-existing:1.0.0-SNAPSHOT
-      kamel run --name metrics Metrics.java -w -n $YAKS_NAMESPACE --dependency mvn:com.github.openshift-integration:camel-k-example-metrics:1.0.0-SNAPSHOT
\ No newline at end of file
+apiVersion: monitoring.coreos.com/v1
+kind: PodMonitor
+metadata:
+  name: camel-k-operator
+  labels:
+    app: "camel-k"
+    camel.apache.org/component: operator
+spec:
+  selector:
+    matchLabels:
+      app: "camel-k"
+      camel.apache.org/component: operator
+  podMetricsEndpoints:
+    - port: metrics
\ No newline at end of file
diff --git a/e2e/yaks/openshift/monitoring/resources/operator-prometheus-rule.yaml b/e2e/yaks/openshift/monitoring/resources/operator-prometheus-rule.yaml
new file mode 100644
index 0000000..2e00f68
--- /dev/null
+++ b/e2e/yaks/openshift/monitoring/resources/operator-prometheus-rule.yaml
@@ -0,0 +1,145 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
+apiVersion: monitoring.coreos.com/v1
+kind: PrometheusRule
+metadata:
+  name: camel-k-operator
+spec:
+  groups:
+    - name: camel-k-operator
+      rules:
+        - alert: CamelKReconciliationDuration
+          expr: |
+            (
+            1 - sum(rate(camel_k_reconciliation_duration_seconds_bucket{le="0.5"}[5m])) by (job)
+            /
+            sum(rate(camel_k_reconciliation_duration_seconds_count[5m])) by (job)
+            )
+            * 100
+            > 10
+          for: 1m
+          labels:
+            severity: warning
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the reconciliation requests
+              for {{ $labels.job }} have their duration above 0.5s.
+        - alert: CamelKReconciliationFailure
+          expr: |
+            sum(rate(camel_k_reconciliation_duration_seconds_count{result="Errored"}[5m])) by (job)
+            /
+            sum(rate(camel_k_reconciliation_duration_seconds_count[5m])) by (job)
+            * 100
+            > 1
+          for: 10m
+          labels:
+            severity: warning
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the reconciliation requests
+              for {{ $labels.job }} have failed.
+        - alert: CamelKSuccessBuildDuration2m
+          expr: |
+            (
+            1 - sum(rate(camel_k_build_duration_seconds_bucket{le="120",result="Succeeded"}[5m])) by (job)
+            /
+            sum(rate(camel_k_build_duration_seconds_count{result="Succeeded"}[5m])) by (job)
+            )
+            * 100
+            > 10
+          for: 1m
+          labels:
+            severity: warning
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the successful builds
+              for {{ $labels.job }} have their duration above 2m.
+        - alert: CamelKSuccessBuildDuration5m
+          expr: |
+            (
+            1 - sum(rate(camel_k_build_duration_seconds_bucket{le="300",result="Succeeded"}[5m])) by (job)
+            /
+            sum(rate(camel_k_build_duration_seconds_count{result="Succeeded"}[5m])) by (job)
+            )
+            * 100
+            > 1
+          for: 1m
+          labels:
+            severity: critical
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the successful builds
+              for {{ $labels.job }} have their duration above 5m.
+        - alert: CamelKBuildFailure
+          expr: |
+            sum(rate(camel_k_build_duration_seconds_count{result="Failed"}[5m])) by (job)
+            /
+            sum(rate(camel_k_build_duration_seconds_count[5m])) by (job)
+            * 100
+            > 1
+          for: 10m
+          labels:
+            severity: warning
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the builds for {{ $labels.job }} have failed.
+        - alert: CamelKBuildError
+          expr: |
+            sum(rate(camel_k_build_duration_seconds_count{result="Error"}[5m])) by (job)
+            /
+            sum(rate(camel_k_build_duration_seconds_count[5m])) by (job)
+            * 100
+            > 1
+          for: 10m
+          labels:
+            severity: critical
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the builds for {{ $labels.job }} have errored.
+        - alert: CamelKBuildQueueDuration1m
+          expr: |
+            (
+            1 - sum(rate(camel_k_build_queue_duration_seconds_bucket{le="60"}[5m])) by (job)
+            /
+            sum(rate(camel_k_build_queue_duration_seconds_count[5m])) by (job)
+            )
+            * 100
+            > 1
+          for: 1m
+          labels:
+            severity: warning
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the builds for {{ $labels.job }}
+              have been queued for more than 1m.
+        - alert: CamelKBuildQueueDuration5m
+          expr: |
+            (
+            1 - sum(rate(camel_k_build_queue_duration_seconds_bucket{le="300"}[5m])) by (job)
+            /
+            sum(rate(camel_k_build_queue_duration_seconds_count[5m])) by (job)
+            )
+            * 100
+            > 1
+          for: 1m
+          labels:
+            severity: critical
+          annotations:
+            message: |
+              {{ printf "%0.0f" $value }}% of the builds for {{ $labels.job }}
+              have been queued for more than 5m.
\ No newline at end of file
diff --git a/e2e/yaks/openshift/monitoring/yaks-config.yaml b/e2e/yaks/openshift/monitoring/yaks-config.yaml
index 242ae05..b29f76b 100644
--- a/e2e/yaks/openshift/monitoring/yaks-config.yaml
+++ b/e2e/yaks/openshift/monitoring/yaks-config.yaml
@@ -23,7 +23,9 @@ pre:
     script: ./obtainToken.sh
   - name: Camel-k install
     run: |
-      kamel install -w -n ${YAKS_NAMESPACE} --monitoring=true
+      kamel install -w -n ${YAKS_NAMESPACE}
+  - name: Setup monitoring resources
+    script: ./monitoringResources.sh
   - name: Dependency install
     script: ./dependencyInstall.sh
   - name: Integration run