feat: Add Prometheus Grafana support to uptime-kuma

This commit is contained in:
Stefan Reimer 2021-09-24 17:51:20 +02:00
parent 3f2e96162d
commit eb4035921c
7 changed files with 99 additions and 3 deletions

View File

@ -2,7 +2,7 @@ apiVersion: v2
name: uptime-kuma
description: Chart for deploying uptime-kuma
type: application
version: 0.1.0
version: 0.1.3
appVersion: 1.6.3
home: https://kubezero.com
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png

View File

@ -1,6 +1,6 @@
# uptime-kuma
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.6.3](https://img.shields.io/badge/AppVersion-1.6.3-informational?style=flat-square)
![Version: 0.1.3](https://img.shields.io/badge/Version-0.1.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.6.3](https://img.shields.io/badge/AppVersion-1.6.3-informational?style=flat-square)
Chart for deploying uptime-kuma
@ -26,11 +26,12 @@ Kubernetes: `>= 1.18.0`
|-----|------|---------|-------------|
| fullnameOverride | string | `""` | override the full name of the uptime-kuma chart |
| image | string | `"louislam/uptime-kuma"` | |
| istio.enabled | bool | `true` | |
| istio.enabled | bool | `false` | |
| istio.gateway | string | `"istio-ingress/private-ingressgateway"` | |
| istio.url | string | `"uptime.example.com"` | |
| nameOverride | string | `""` | override the name of the uptime-kuma chart |
| service.port | int | `3001` | The port to be used by the uptime-kuma service |
| serviceMonitor.enabled | bool | `false` | |
| version | string | `"1.6.3-alpine"` | |
## Resources

View File

@ -0,0 +1,8 @@
configmap: grafana-dashboards
gzip: true
folder: Metrics
condition: '.Values.serviceMonitor.enabled'
dashboards:
- name: Uptime
url: https://grafana.com/api/dashboards/14847/revisions/2/download
tags: []

View File

@ -0,0 +1,15 @@
{{- if .Values.serviceMonitor.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ printf "%s-%s" (include "kubezero-lib.fullname" $) "grafana-dashboards" | trunc 63 | trimSuffix "-" }}
namespace: {{ .Release.Namespace }}
labels:
grafana_dashboard: "1"
{{- include "kubezero-lib.labels" . | nindent 4 }}
annotations:
k8s-sidecar-target-directory: Metrics
binaryData:
Uptime.json.gz:
H4sIAAAAAAAC/+1ZW2/bNhR+96/gOGBoALewml7SvXlJOgTL0iBJ22FDEdASbbOhSJWkEruG//sOqRsl0U7QbVga5MWGzqHIc//OEVcDhPDlJRNZbjT+Gf31aVhQFP2SM0UdDSgIrdwv8Mwyo0DFM0WmRBA8rBgsCZIFSd36X7uMa6o0k8Ly9p5FzyLsGOth+LiMCMq7h2lDTP+k8xbVO+YbTjAspZoqBpbonXMBPNRl9o+D38KqRAgJogHXmrU4H3OmTW3kRirgTHLGzZHdKRo21IQYomWuYifCqZIpNXOaNxLAGirIhFu+UTn16HOWBKgslmJfcqnshmo2IU9GQ/Q8iuDn5cshinb8rSvdx40u6Cc05lSZlgiGqBk1tZollbOUWWI0Gg19ekpMPB+LJbCmhGvaYhoya0KzoZZeS4ieTyRRCa65a1+OTcvW7v/ToFyOacJMx2p4Jqg5smEQvdh78bogKZLNL6TkhmXAcGoUoSJyzt0TZ+LKyyUXVoE8ajmyetlxpozyZF+KKZu1DIgTOiU5N7pr1rj0nk+0VpXO3djMIZHnkicaewvWHQ9kGRMz7YViNyDLlTJrR3CLOQqSPRGxogkehlYwkdBFZdIe19CFDRx88O7jCe4tWPffwdGtoswUpWK7MNFWYd6fBkQZ3CJaHZLXhOe0vYH/cifcGx9u9DOZaMlzQzsqQZWkWd+xKOS/W21TSl1E7G2qbjsgHAf19nujwTa7fhqEOH7iSyjECupdkYmDzgLQjyWnsm1MPLcHe3vcwPMb77kTntjWq1Fva1cNXtSPoXwpzPB76bcJia9mSubCt0hRaaolRFHiMz/n2rDpsmLHVBiq/AUSUEkUBdq9nxvps8H6eUzfBVMZx4TH/XjBnGhzIs0JOB5vjFNXu7RDvxbd+VVX9T1cqousWnVptQ2sDj1rZzyfMfGh20vU/AKI2uq0tKULmmacqB4wOl7mgjWVghmpLm2/kWvUVo1Z24N+faU5nVGRvJUK8M1yVytU7WRxFK3X7fWKTh3c4LEHZoOOmaElMbzoc5ih6NyJ5OlbVhfXGgX7nUfg+RbgOfzj9Ojs8ODeYM+H8fHRwYOFn1vQ4Z+Cz63oFt1T9Ime3w1+Xj7CzwOEnximrEumL0EbltwTELo4Pkf7IBebspjcczzKCKfG0KcxxJJm8WZQiiG+ZdrfiCyYPiYT2jdzyTzlJKYphH4g6ouhnqgxZzNRrulgDk4UuTk3y8K0MEj2iumUcf4uIzEzy8DrkLSJTbwqZoXs72A/ArxVAe3qWAlN4YUv67k3zL9mX3spFqjNTrEjG7CZ5HWNsESicGDpR5aYeR8QcSYh6s/ZV+oXvAp0oIrQA6aNYpO8PGK1CQrLo7fKDOh3c2oP1Jtcq2HSt9VJh+1jMyC+glYnJImtv1mRdD2rpr4zt8rYoHQVQ6tNm8npdDP2b+7QHofSu7YFLUPlwn32wqnG/+uwuhfuFp5v7xbqqnAXmE7JouvqlIleWt8FzBOmARnrLqP4PNdakfnldiKNLdphcK8rV0uHKkg1xDenfbxb/7s4rvP0SYW9kDkZWJpe2i/Mq/UOmizREx+Yd+4JwJ+VgiL7uTsA7N4X8u9s3HzQI86Ph+Nf9nbfbDtid/SfzlCvRt/LELWhLL56HKIe6hCVkKWGEpwSJmxHdj9HqbNKPnQA4m4dqeo7Rh3P4a3GlLvFDZWuZoqEqCu3U/taDZxkDWj89rS+mmwuyWytb/jTYoqAxvTmaTQv5QOoLWm49VrG4iuq6thwtK+2o62s3NjhfWaZ6Lc8LfIF58Vd7P7J3uHT6z9flwo0N61uMADU0LFiWZUuY1Tf+SEjke3fkZlTZPEIWdHdE13ElHNIM+SdijIlP9PY/FAcBG600GA33R0Btqz/Bj5/AfA2HwAA
{{- end }}

View File

@ -0,0 +1,63 @@
{{- if .Values.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "kubezero-lib.fullname" . }}
{{- with .Values.serviceMonitor.namespace }}
namespace: {{ . }}
{{- end }}
labels:
{{- include "kubezero-lib.labels" . | nindent 4 }}
spec:
jobLabel: {{ .Values.serviceMonitor.jobLabel | default .Release.Name }}
endpoints:
- port: http
path: /metrics
{{- with .Values.serviceMonitor.interval }}
interval: {{ . }}
{{- end }}
{{- with .Values.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ . }}
{{- end }}
{{- if .Values.serviceMonitor.metricRelabelings }}
metricRelabelings:
{{ tpl (toYaml .Values.serviceMonitor.metricRelabelings | indent 6) . }}
{{- end }}
{{- if .Values.serviceMonitor.relabelings }}
relabelings:
{{ toYaml .Values.serviceMonitor.relabelings | indent 6 }}
{{- end }}
{{- if .Values.serviceMonitor.basicAuth }}
basicAuth:
password:
name: {{ include "kubezero-lib.fullname" . }}-servicemonitor-basic-auth
key: password
username:
name: {{ include "kubezero-lib.fullname" . }}-servicemonitor-basic-auth
key: username
{{- end }}
{{- if .Values.serviceMonitor.namespaceSelector }}
namespaceSelector:
{{ toYaml .Values.serviceMonitor.namespaceSelector | indent 4 -}}
{{ else }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
{{- end }}
selector:
matchLabels:
{{- include "kubezero-lib.selectorLabels" . | nindent 6 }}
---
{{- if .Values.serviceMonitor.basicAuth }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "kubezero-lib.fullname" . }}-servicemonitor-basic-auth
data:
password: {{ .Values.serviceMonitor.basicAuth.password | b64enc }}
username: {{ .Values.serviceMonitor.basicAuth.username | b64enc }}
type: Opaque
{{- end }}
{{- end }}

3
charts/uptime-kuma/update.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash -ex
../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/grafana-dashboards.yaml

View File

@ -30,3 +30,9 @@ istio:
enabled: false
gateway: istio-ingress/private-ingressgateway
url: uptime.example.com
serviceMonitor:
enabled: false
# basicAuth:
# username: uptime
# password: check