Update K8s Monitoring
[osm/devops.git] / installers / k8s / change-charts-prometheus-operator.sh
index 5fcf67a..0d8da46 100755 (executable)
@@ -16,7 +16,7 @@
 #   Author: Jose Manuel Palacios (jmpalacios@minsait.com)
 #   Author: Jose Antonio Martinez (jamartinezv@minsait.com)
 
-# Script to generate new charts for prometheus-operator
+# Script to generate new charts for kube-prometheus-stack
 HERE=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
 source $HERE/versions_monitoring
 V_OPERATOR=""
@@ -26,58 +26,34 @@ V_OPERATOR=$PROMETHEUS_OPERATOR
 
 WORK_DIR=$HERE
 CHARTS_DIR="$HERE/helm_charts"
+mkdir -p $CHARTS_DIR
 
-# This two objects are not exporting metrics
-DELETE_YAML_DAHSBOARDS="etcd.yaml \
-    proxy.yaml"
-DELETE_YAML_RULES="etcd.yaml"
-
-# There is a bug in this dashboard and it is necessary to change it
-CHANGE_YAML_DAHSBOARDS="statefulset.yaml"
 
 # Delete old versions
 cd $CHARTS_DIR
 
-rm -rf prometheus-operator > /dev/null 2>&1 
-rm prometheus-operator* > /dev/null 2>&1 
-
-echo "Fetching stable/prometheus-operator..."
-helm fetch --version=$V_OPERATOR stable/prometheus-operator
-tar xvf prometheus-operator-$V_OPERATOR.tgz > /dev/null 2>&1 
+rm -rf kube-prometheus-stack > /dev/null 2>&1 
+rm kube-prometheus-stack* > /dev/null 2>&1 
 
+echo "Fetching prometheus-community/kube-prometheus-stack..."
+helm fetch --version=$V_OPERATOR prometheus-community/kube-prometheus-stack
+tar xvf kube-prometheus-stack-$V_OPERATOR.tgz > /dev/null 2>&1
 cd $WORK_DIR
 
-# Deleting grafana dashboard
-echo "Changing prometheus-operator grafana dashboards...."
-cd $CHARTS_DIR/prometheus-operator/templates/grafana/dashboards-1.14
-for i in $DELETE_YAML_DAHSBOARDS 
-do
-    #echo "Deleting $i...."
-    rm $i
-done
-
-# Change CHANGE_YAML_DAHSBOARDS because it has an error
-mv $CHANGE_YAML_DAHSBOARDS ${CHANGE_YAML_DAHSBOARDS}.ORI
-cat ${CHANGE_YAML_DAHSBOARDS}.ORI | \
-    sed 's@{job=\\\"kube-state-metrics\\\"}, cluster=\\\"\$cluster\\\",@{job=\\\"kube-state-metrics\\\", cluster=\\\"\$cluster\\\"},@' > \
-    $CHANGE_YAML_DAHSBOARDS
-chmod 755 $CHANGE_YAML_DAHSBOARDS
-rm ${CHANGE_YAML_DAHSBOARDS}.ORI
-
-cd $WORK_DIR
 
-# Deleting prometheus rules
-echo "Changing prometheus-operator rules...."
-cd $CHARTS_DIR/prometheus-operator/templates/prometheus/rules-1.14
-for i in $DELETE_YAML_RULES 
+# Patching Grafana dashboards
+cd $CHARTS_DIR/kube-prometheus-stack/templates/grafana/dashboards-1.14
+# Replace kubelet dashboard (use singlestat panel instead of stat): Stat panel is available in Grafana 7.0+
+cp $WORK_DIR/kubelet.yaml .
+for f in $(find . -name '*.yaml*');
 do
-    #echo "Deleting $i...."
-    rm $i
+    # Set the correct datasource in all dashboards
+    linenumber=`cat -n $f | grep -A8 '"name": "datasource"' | grep regex | awk '{print $1}'`
+    sed -e "$linenumber s/\"regex\": \"\"/\"regex\": \"Prometheus\"/" -i $f
+    # Use a fix interval instead of rate_interval variable: $__rate_interval is available in Grafana 7.2+
+    sed -e "s/\$__rate_interval/5m/g" -i $f
 done
+cd $WORK_DIR
 
-# Deleting Grafana dependence to avoid it installation
-sed -i -e '/.*- name: grafana.*/,+3d' $CHARTS_DIR/prometheus-operator/requirements.yaml
-sed -i -e '/.*- name: grafana.*/,+2d' $CHARTS_DIR/prometheus-operator/requirements.lock
-rm -rf $CHARTS_DIR/prometheus-operator/charts/grafana
 
 exit 0