feat(helm): ability to monitor garage via prometheus
This commit is contained in:
parent
d20e8c9256
commit
b999bb36af
4 changed files with 94 additions and 0 deletions
|
@ -17,3 +17,24 @@ spec:
|
||||||
name: s3-web
|
name: s3-web
|
||||||
selector:
|
selector:
|
||||||
{{- include "garage.selectorLabels" . | nindent 4 }}
|
{{- include "garage.selectorLabels" . | nindent 4 }}
|
||||||
|
{{- if .Values.monitoring.metrics.enabled }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ include "garage.fullname" . }}-metrics
|
||||||
|
labels:
|
||||||
|
{{- include "garage.labels" . | nindent 4 }}
|
||||||
|
annotations:
|
||||||
|
prometheus.io/scrape: "true"
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
clusterIP: None
|
||||||
|
ports:
|
||||||
|
- port: 3903
|
||||||
|
targetPort: 3903
|
||||||
|
protocol: TCP
|
||||||
|
name: metrics
|
||||||
|
selector:
|
||||||
|
{{- include "garage.selectorLabels" . | nindent 4 }}
|
||||||
|
{{- end }}
|
44
script/helm/garage/templates/servicemonitor.yaml
Normal file
44
script/helm/garage/templates/servicemonitor.yaml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{{- if .Values.monitoring.metrics.serviceMonitor.enabled }}
|
||||||
|
---
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ include "garage.fullname" . }}
|
||||||
|
{{- if .Values.monitoring.metrics.serviceMonitor.namespace }}
|
||||||
|
namespace: {{ tpl .Values.monitoring.metrics.serviceMonitor.namespace . }}
|
||||||
|
{{- else }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "garage.labels" . | nindent 4 }}
|
||||||
|
{{- with .Values.monitoring.metrics.serviceMonitor.labels }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- port: metrics
|
||||||
|
{{- with .Values.monitoring.metrics.serviceMonitor.interval }}
|
||||||
|
interval: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.monitoring.metrics.serviceMonitor.scrapeTimeout }}
|
||||||
|
scrapeTimeout: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
honorLabels: true
|
||||||
|
path: {{ .Values.monitoring.metrics.serviceMonitor.path }}
|
||||||
|
scheme: {{ .Values.monitoring.metrics.serviceMonitor.scheme }}
|
||||||
|
{{- with .Values.monitoring.metrics.serviceMonitor.tlsConfig }}
|
||||||
|
tlsConfig:
|
||||||
|
{{- toYaml . | nindent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.monitoring.metrics.serviceMonitor.relabelings }}
|
||||||
|
relabelings:
|
||||||
|
{{- toYaml . | nindent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
jobLabel: "{{ .Release.Name }}"
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "garage.selectorLabels" . | nindent 6 }}
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Release.Namespace }}
|
||||||
|
{{- end }}
|
|
@ -61,6 +61,8 @@ spec:
|
||||||
name: s3-api
|
name: s3-api
|
||||||
- containerPort: 3902
|
- containerPort: 3902
|
||||||
name: web-api
|
name: web-api
|
||||||
|
- containerPort: 3903
|
||||||
|
name: admin
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: meta
|
- name: meta
|
||||||
mountPath: /mnt/meta
|
mountPath: /mnt/meta
|
||||||
|
|
|
@ -49,6 +49,12 @@ garage:
|
||||||
bind_addr = "[::]:3902"
|
bind_addr = "[::]:3902"
|
||||||
root_domain = "{{ .Values.garage.s3.web.rootDomain }}"
|
root_domain = "{{ .Values.garage.s3.web.rootDomain }}"
|
||||||
index = "{{ .Values.garage.s3.web.index }}"
|
index = "{{ .Values.garage.s3.web.index }}"
|
||||||
|
|
||||||
|
[admin]
|
||||||
|
api_bind_addr = "[::]:3903"
|
||||||
|
{{- if .Values.monitoring.tracing.sink }}
|
||||||
|
trace_sink = "{{ .Values.monitoring.tracing.sink }}"
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
# Data persistence
|
# Data persistence
|
||||||
persistence:
|
persistence:
|
||||||
|
@ -123,6 +129,7 @@ service:
|
||||||
web:
|
web:
|
||||||
port: 3902
|
port: 3902
|
||||||
# NOTE: the admin API is excluded for now as it is not consistent across nodes
|
# NOTE: the admin API is excluded for now as it is not consistent across nodes
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
s3:
|
s3:
|
||||||
api:
|
api:
|
||||||
|
@ -186,3 +193,23 @@ nodeSelector: {}
|
||||||
tolerations: []
|
tolerations: []
|
||||||
|
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
|
monitoring:
|
||||||
|
metrics:
|
||||||
|
# If true, a service for monitoring is created with a prometheus.io/scrape annotation
|
||||||
|
enabled: false
|
||||||
|
serviceMonitor:
|
||||||
|
# If true, a ServiceMonitor CRD is created for a prometheus operator
|
||||||
|
# https://github.com/coreos/prometheus-operator
|
||||||
|
#
|
||||||
|
enabled: false
|
||||||
|
path: /metrics
|
||||||
|
# namespace: monitoring (defaults to use the namespace this chart is deployed to)
|
||||||
|
labels: {}
|
||||||
|
interval: 15s
|
||||||
|
scheme: http
|
||||||
|
tlsConfig: {}
|
||||||
|
scrapeTimeout: 10s
|
||||||
|
relabelings: []
|
||||||
|
tracing:
|
||||||
|
sink: ""
|
Loading…
Reference in a new issue