From 2ca71f4bc99c281721145318722520433424fec2 Mon Sep 17 00:00:00 2001 From: Diogo Guerra Date: Mon, 20 Apr 2020 18:47:05 +0900 Subject: [PATCH] Scrape traefik and autoscaler metrics * Scrape metrics from traefik proxy * Scrape metrics from cluster autoscaler task: 37574 story: 2006765 Change-Id: Iae2217647783d12bb6bdb58331caeba2183ca2f9 Signed-off-by: Diogo Guerra --- .../kubernetes/helm/prometheus-operator.sh | 45 +++++++++++++++++++ ...crape_ca_and_traefik-5544d8dd5ab7c234.yaml | 5 +++ 2 files changed, 50 insertions(+) create mode 100644 releasenotes/notes/monitoring_scrape_ca_and_traefik-5544d8dd5ab7c234.yaml diff --git a/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh b/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh index d336445fdc..11c3281c8f 100644 --- a/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh +++ b/magnum/drivers/common/templates/kubernetes/helm/prometheus-operator.sh @@ -13,6 +13,7 @@ CHART_NAME="prometheus-operator" if [ "$(echo ${MONITORING_ENABLED} | tr '[:upper:]' '[:lower:]')" = "true" ]; then + ####################### # Calculate resources needed to run the Prometheus Monitoring Solution # MAX_NODE_COUNT so we can have metrics even if cluster scales PROMETHEUS_SERVER_CPU=$(expr 128 + 7 \* ${MAX_NODE_COUNT} ) @@ -30,6 +31,47 @@ if [ "$(echo ${MONITORING_ENABLED} | tr '[:upper:]' '[:lower:]')" = "true" ]; th INSECURE_SKIP_VERIFY="True" fi + ####################### + # Set up definitions for ingress objects + + # Ensure name conformity + INGRESS_CONTROLLER=$(echo ${INGRESS_CONTROLLER} | tr '[:upper:]' '[:lower:]') + if [ "${INGRESS_CONTROLLER}" == "nginx" ]; then + : + elif [ "${INGRESS_CONTROLLER}" == "traefik" ]; then + APP_ADDITIONAL_SERVICE_MONITORS=$(cat << EOF + additionalServiceMonitors: + - name: prometheus-traefik-metrics + selector: + matchLabels: + k8s-app: traefik + namespaceSelector: + matchNames: + - kube-system + endpoints: + - path: /metrics + port: metrics +EOF + ) + fi #END INGRESS + + if [ "$(echo ${AUTO_SCALING_ENABLED } | tr '[:upper:]' '[:lower:]')" == "true" ]; then + APP_ADDITIONAL_POD_MONITORS=$(cat << EOF + additionalPodMonitors: + - name: prometheus-cluster-autoscaler + podMetricsEndpoints: + - port: metrics + scheme: http + namespaceSelector: + matchNames: + - kube-system + selector: + matchLabels: + app: cluster-autoscaler +EOF + ) + fi #END AUTOSCALING + HELM_MODULE_CONFIG_FILE="/srv/magnum/kubernetes/helm/${CHART_NAME}.yaml" [ -f ${HELM_MODULE_CONFIG_FILE} ] || { echo "Writing File: ${HELM_MODULE_CONFIG_FILE}" @@ -66,6 +108,7 @@ data: fi install-${CHART_NAME}-values.yaml: | + --- nameOverride: prometheus fullnameOverride: prometheus @@ -156,6 +199,8 @@ data: # secrets: # - etcd-certificates priorityClassName: "system-cluster-critical" +${APP_ADDITIONAL_SERVICE_MONITORS} +${APP_ADDITIONAL_POD_MONITORS} --- apiVersion: batch/v1 diff --git a/releasenotes/notes/monitoring_scrape_ca_and_traefik-5544d8dd5ab7c234.yaml b/releasenotes/notes/monitoring_scrape_ca_and_traefik-5544d8dd5ab7c234.yaml new file mode 100644 index 0000000000..bd6ed5afa0 --- /dev/null +++ b/releasenotes/notes/monitoring_scrape_ca_and_traefik-5544d8dd5ab7c234.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Prometheus server now scrape metrics from traefik proxy. + Prometheus server now scrape metrics from cluster autoscaler.