From 1811abf8f92dc98f76c2948fce3bee8fa8f67f21 Mon Sep 17 00:00:00 2001 From: Keshav Prasad <keshavprasadms@gmail.com> Date: Mon, 17 Jan 2022 23:47:40 +0530 Subject: [PATCH] feat: TG-1172 prometheus metrics for opa and envoy (#3155) --- .../core/analytics/templates/deployment.yaml | 12 ++++++- .../analytics/templates/envoy-config.yaml | 21 ++++++++++++ .../analytics/templates/serviceMonitor.yaml | 14 ++++++++ .../certregistry/templates/deployment.yaml | 12 ++++++- .../certregistry/templates/envoy-config.yaml | 21 ++++++++++++ .../templates/serviceMonitor.yaml | 34 +++++++++++++++++++ .../helm_charts/core/certregistry/values.j2 | 6 ++++ .../core/content/templates/deployment.yaml | 10 ++++++ .../core/content/templates/envoy-config.yaml | 21 ++++++++++++ .../content/templates/serviceMonitor.yaml | 34 +++++++++++++++++++ kubernetes/helm_charts/core/content/values.j2 | 6 ++++ .../knowledgemw/templates/deployment.yaml | 10 ++++++ .../knowledgemw/templates/envoy-config.yaml | 21 ++++++++++++ .../knowledgemw/templates/serviceMonitor.yaml | 34 +++++++++++++++++++ .../helm_charts/core/knowledgemw/values.j2 | 6 ++++ .../core/learner/templates/deployment.yaml | 10 ++++++ .../core/learner/templates/envoy-config.yaml | 21 ++++++++++++ .../learner/templates/serviceMonitor.yaml | 34 +++++++++++++++++++ kubernetes/helm_charts/core/learner/values.j2 | 6 ++++ .../core/lms/templates/deployment.yaml | 10 ++++++ .../core/lms/templates/envoy-config.yaml | 21 ++++++++++++ .../core/lms/templates/serviceMonitor.yaml | 34 +++++++++++++++++++ kubernetes/helm_charts/core/lms/values.j2 | 6 ++++ 23 files changed, 402 insertions(+), 2 deletions(-) create mode 100644 kubernetes/helm_charts/core/certregistry/templates/serviceMonitor.yaml create mode 100644 kubernetes/helm_charts/core/content/templates/serviceMonitor.yaml create mode 100644 kubernetes/helm_charts/core/knowledgemw/templates/serviceMonitor.yaml create mode 100644 kubernetes/helm_charts/core/learner/templates/serviceMonitor.yaml create mode 100644 kubernetes/helm_charts/core/lms/templates/serviceMonitor.yaml diff --git a/kubernetes/helm_charts/core/analytics/templates/deployment.yaml b/kubernetes/helm_charts/core/analytics/templates/deployment.yaml index a23c754a5..8044dac08 100644 --- a/kubernetes/helm_charts/core/analytics/templates/deployment.yaml +++ b/kubernetes/helm_charts/core/analytics/templates/deployment.yaml @@ -159,5 +159,15 @@ spec: - name: http-{{ .Chart.Name }} protocol: TCP port: {{ .Values.network.targetport }} +{{- if .Values.analytics_opa_enabled }} + - name: opa-metrics + port: 8181 + protocol: TCP + targetPort: 8181 + - name: envoy-metrics + port: 10000 + protocol: TCP + targetPort: 10000 +{{- end }} selector: - app: {{ .Chart.Name }} + app: {{ .Chart.Name }} \ No newline at end of file diff --git a/kubernetes/helm_charts/core/analytics/templates/envoy-config.yaml b/kubernetes/helm_charts/core/analytics/templates/envoy-config.yaml index 4e37564d3..d7e86e500 100644 --- a/kubernetes/helm_charts/core/analytics/templates/envoy-config.yaml +++ b/kubernetes/helm_charts/core/analytics/templates/envoy-config.yaml @@ -29,6 +29,15 @@ data: domains: - "*" routes: + - match: + prefix: "/opa/metrics" + route: + prefix_rewrite: "/metrics" + cluster: opa + typed_per_filter_config: + envoy.filters.http.ext_authz: + "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + disabled: true - match: prefix: "{{ .Values.livenessProbe.httpGet.path }}" route: @@ -71,6 +80,18 @@ data: socket_address: address: 127.0.0.1 port_value: {{ .Values.network.targetport }} + - name: opa + connect_timeout: 5s + type: static + load_assignment: + cluster_name: opa + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: 127.0.0.1 + port_value: 8181 admin: access_log_path: "/dev/stdout" address: diff --git a/kubernetes/helm_charts/core/analytics/templates/serviceMonitor.yaml b/kubernetes/helm_charts/core/analytics/templates/serviceMonitor.yaml index 16af0de8d..316a9a12c 100644 --- a/kubernetes/helm_charts/core/analytics/templates/serviceMonitor.yaml +++ b/kubernetes/helm_charts/core/analytics/templates/serviceMonitor.yaml @@ -15,6 +15,20 @@ spec: port: http-{{ .Chart.Name }} scheme: http scrapeTimeout: 10s +{{- if .Values.analytics_opa_enabled }} + - honorLabels: true + interval: 30s + path: /opa/metrics + port: opa-metrics + scheme: http + scrapeTimeout: 10s + - honorLabels: true + interval: 30s + path: /stats/prometheus + port: envoy-metrics + scheme: http + scrapeTimeout: 10s +{{- end }} jobLabel: {{ .Chart.Name }} namespaceSelector: matchNames: diff --git a/kubernetes/helm_charts/core/certregistry/templates/deployment.yaml b/kubernetes/helm_charts/core/certregistry/templates/deployment.yaml index de6f165b4..691c5c338 100644 --- a/kubernetes/helm_charts/core/certregistry/templates/deployment.yaml +++ b/kubernetes/helm_charts/core/certregistry/templates/deployment.yaml @@ -147,5 +147,15 @@ spec: - name: http-{{ .Chart.Name }} protocol: TCP port: {{ .Values.network.targetport }} +{{- if .Values.certregistry_opa_enabled }} + - name: opa-metrics + port: 8181 + protocol: TCP + targetPort: 8181 + - name: envoy-metrics + port: 10000 + protocol: TCP + targetPort: 10000 +{{- end }} selector: - app: {{ .Chart.Name }} + app: {{ .Chart.Name }} \ No newline at end of file diff --git a/kubernetes/helm_charts/core/certregistry/templates/envoy-config.yaml b/kubernetes/helm_charts/core/certregistry/templates/envoy-config.yaml index 9eb6517a6..0fb92bd8e 100644 --- a/kubernetes/helm_charts/core/certregistry/templates/envoy-config.yaml +++ b/kubernetes/helm_charts/core/certregistry/templates/envoy-config.yaml @@ -29,6 +29,15 @@ data: domains: - "*" routes: + - match: + prefix: "/opa/metrics" + route: + prefix_rewrite: "/metrics" + cluster: opa + typed_per_filter_config: + envoy.filters.http.ext_authz: + "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + disabled: true - match: prefix: "{{ .Values.livenessProbe.httpGet.path }}" route: @@ -71,6 +80,18 @@ data: socket_address: address: 127.0.0.1 port_value: {{ .Values.network.targetport }} + - name: opa + connect_timeout: 5s + type: static + load_assignment: + cluster_name: opa + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: 127.0.0.1 + port_value: 8181 admin: access_log_path: "/dev/stdout" address: diff --git a/kubernetes/helm_charts/core/certregistry/templates/serviceMonitor.yaml b/kubernetes/helm_charts/core/certregistry/templates/serviceMonitor.yaml new file mode 100644 index 000000000..9964b1885 --- /dev/null +++ b/kubernetes/helm_charts/core/certregistry/templates/serviceMonitor.yaml @@ -0,0 +1,34 @@ +{{- if .Values.certregistry_opa_enabled }} +{{- if .Values.serviceMonitor.enabled }} +{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ .Chart.Name }}-service + namespace: {{ .Values.namespace }} + labels: + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} +spec: + endpoints: + - honorLabels: true + interval: 30s + path: /opa/metrics + port: opa-metrics + scheme: http + scrapeTimeout: 10s + - honorLabels: true + interval: 30s + path: /stats/prometheus + port: envoy-metrics + scheme: http + scrapeTimeout: 10s + jobLabel: {{ .Chart.Name }} + namespaceSelector: + matchNames: + - {{ default .Values.namespace .Release.Namespace }} + selector: + matchLabels: + app: {{ .Chart.Name }} +{{- end }} +{{- end }} +{{- end }} diff --git a/kubernetes/helm_charts/core/certregistry/values.j2 b/kubernetes/helm_charts/core/certregistry/values.j2 index f72e31d0a..dd1eddddd 100644 --- a/kubernetes/helm_charts/core/certregistry/values.j2 +++ b/kubernetes/helm_charts/core/certregistry/values.j2 @@ -56,6 +56,12 @@ initcontainer_resources: cpu: "{{ certregistry_initcontainer_cpu_limit | default('100m') }}" memory: "{{ certregistry_initcontainer_mem_limit | default('100Mi') }}" +serviceMonitor: + enabled: true + labels: # labels with which the prometheus choose the serviceMonitor + app: prometheus-operator + release: prometheus-operator + autoscaling: enabled: {{ certregistry_autoscaling_enabled | default('false') }} minReplicas: {{ certregistry_autoscaling_minReplicas|default(1) }} diff --git a/kubernetes/helm_charts/core/content/templates/deployment.yaml b/kubernetes/helm_charts/core/content/templates/deployment.yaml index fb121ac7b..bb0433ee9 100644 --- a/kubernetes/helm_charts/core/content/templates/deployment.yaml +++ b/kubernetes/helm_charts/core/content/templates/deployment.yaml @@ -152,5 +152,15 @@ spec: - name: http-{{ .Chart.Name }} protocol: TCP port: {{ .Values.network.targetport }} +{{- if .Values.content_opa_enabled }} + - name: opa-metrics + port: 8181 + protocol: TCP + targetPort: 8181 + - name: envoy-metrics + port: 10000 + protocol: TCP + targetPort: 10000 +{{- end }} selector: app: {{ .Chart.Name }} diff --git a/kubernetes/helm_charts/core/content/templates/envoy-config.yaml b/kubernetes/helm_charts/core/content/templates/envoy-config.yaml index ad22424e3..6e1fe8d2b 100644 --- a/kubernetes/helm_charts/core/content/templates/envoy-config.yaml +++ b/kubernetes/helm_charts/core/content/templates/envoy-config.yaml @@ -29,6 +29,15 @@ data: domains: - "*" routes: + - match: + prefix: "/opa/metrics" + route: + prefix_rewrite: "/metrics" + cluster: opa + typed_per_filter_config: + envoy.filters.http.ext_authz: + "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + disabled: true - match: prefix: "{{ .Values.livenessProbe.httpGet.path }}" route: @@ -71,6 +80,18 @@ data: socket_address: address: 127.0.0.1 port_value: {{ .Values.network.targetport }} + - name: opa + connect_timeout: 5s + type: static + load_assignment: + cluster_name: opa + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: 127.0.0.1 + port_value: 8181 admin: access_log_path: "/dev/stdout" address: diff --git a/kubernetes/helm_charts/core/content/templates/serviceMonitor.yaml b/kubernetes/helm_charts/core/content/templates/serviceMonitor.yaml new file mode 100644 index 000000000..e2e64108b --- /dev/null +++ b/kubernetes/helm_charts/core/content/templates/serviceMonitor.yaml @@ -0,0 +1,34 @@ +{{- if .Values.content_opa_enabled }} +{{- if .Values.serviceMonitor.enabled }} +{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ .Chart.Name }}-service + namespace: {{ .Values.namespace }} + labels: + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} +spec: + endpoints: + - honorLabels: true + interval: 30s + path: /opa/metrics + port: opa-metrics + scheme: http + scrapeTimeout: 10s + - honorLabels: true + interval: 30s + path: /stats/prometheus + port: envoy-metrics + scheme: http + scrapeTimeout: 10s + jobLabel: {{ .Chart.Name }} + namespaceSelector: + matchNames: + - {{ default .Values.namespace .Release.Namespace }} + selector: + matchLabels: + app: {{ .Chart.Name }} +{{- end }} +{{- end }} +{{- end }} diff --git a/kubernetes/helm_charts/core/content/values.j2 b/kubernetes/helm_charts/core/content/values.j2 index 505a2b90d..9a1e65973 100644 --- a/kubernetes/helm_charts/core/content/values.j2 +++ b/kubernetes/helm_charts/core/content/values.j2 @@ -56,6 +56,12 @@ initcontainer_resources: cpu: "{{ content_initcontainer_cpu_limit | default('100m') }}" memory: "{{ content_initcontainer_mem_limit | default('100Mi') }}" +serviceMonitor: + enabled: true + labels: # labels with which the prometheus choose the serviceMonitor + app: prometheus-operator + release: prometheus-operator + autoscaling: enabled: {{ content_autoscaling_enabled | default('false') }} minReplicas: {{ content_autoscaling_minReplicas|default(1) }} diff --git a/kubernetes/helm_charts/core/knowledgemw/templates/deployment.yaml b/kubernetes/helm_charts/core/knowledgemw/templates/deployment.yaml index 5432b2579..f81500830 100644 --- a/kubernetes/helm_charts/core/knowledgemw/templates/deployment.yaml +++ b/kubernetes/helm_charts/core/knowledgemw/templates/deployment.yaml @@ -143,5 +143,15 @@ spec: - name: http-{{ .Chart.Name }} protocol: TCP port: {{ .Values.network.targetport }} +{{- if .Values.knowledgemw_opa_enabled }} + - name: opa-metrics + port: 8181 + protocol: TCP + targetPort: 8181 + - name: envoy-metrics + port: 10000 + protocol: TCP + targetPort: 10000 +{{- end }} selector: app: {{ .Chart.Name }} diff --git a/kubernetes/helm_charts/core/knowledgemw/templates/envoy-config.yaml b/kubernetes/helm_charts/core/knowledgemw/templates/envoy-config.yaml index ec91a1127..32af75f2b 100644 --- a/kubernetes/helm_charts/core/knowledgemw/templates/envoy-config.yaml +++ b/kubernetes/helm_charts/core/knowledgemw/templates/envoy-config.yaml @@ -29,6 +29,15 @@ data: domains: - "*" routes: + - match: + prefix: "/opa/metrics" + route: + prefix_rewrite: "/metrics" + cluster: opa + typed_per_filter_config: + envoy.filters.http.ext_authz: + "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + disabled: true - match: prefix: "{{ .Values.livenessProbe.httpGet.path }}" route: @@ -71,6 +80,18 @@ data: socket_address: address: 127.0.0.1 port_value: {{ .Values.network.targetport }} + - name: opa + connect_timeout: 5s + type: static + load_assignment: + cluster_name: opa + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: 127.0.0.1 + port_value: 8181 admin: access_log_path: "/dev/stdout" address: diff --git a/kubernetes/helm_charts/core/knowledgemw/templates/serviceMonitor.yaml b/kubernetes/helm_charts/core/knowledgemw/templates/serviceMonitor.yaml new file mode 100644 index 000000000..4749dec07 --- /dev/null +++ b/kubernetes/helm_charts/core/knowledgemw/templates/serviceMonitor.yaml @@ -0,0 +1,34 @@ +{{- if .Values.knowledgemw_opa_enabled }} +{{- if .Values.serviceMonitor.enabled }} +{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ .Chart.Name }}-service + namespace: {{ .Values.namespace }} + labels: + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} +spec: + endpoints: + - honorLabels: true + interval: 30s + path: /opa/metrics + port: opa-metrics + scheme: http + scrapeTimeout: 10s + - honorLabels: true + interval: 30s + path: /stats/prometheus + port: envoy-metrics + scheme: http + scrapeTimeout: 10s + jobLabel: {{ .Chart.Name }} + namespaceSelector: + matchNames: + - {{ default .Values.namespace .Release.Namespace }} + selector: + matchLabels: + app: {{ .Chart.Name }} +{{- end }} +{{- end }} +{{- end }} diff --git a/kubernetes/helm_charts/core/knowledgemw/values.j2 b/kubernetes/helm_charts/core/knowledgemw/values.j2 index a1dba6944..e7b32824e 100644 --- a/kubernetes/helm_charts/core/knowledgemw/values.j2 +++ b/kubernetes/helm_charts/core/knowledgemw/values.j2 @@ -55,6 +55,12 @@ initcontainer_resources: knowledgemw_access_basepath: {{ knowledgemw_access_basepath | default('/home/sunbird/mw/content/keys/') }} +serviceMonitor: + enabled: true + labels: # labels with which the prometheus choose the serviceMonitor + app: prometheus-operator + release: prometheus-operator + autoscaling: enabled: {{ knowledgemw_autoscaling_enabled | default('false') }} minReplicas: {{ knowledgemw_autoscaling_minReplicas|default(1) }} diff --git a/kubernetes/helm_charts/core/learner/templates/deployment.yaml b/kubernetes/helm_charts/core/learner/templates/deployment.yaml index fcf765e76..423297414 100644 --- a/kubernetes/helm_charts/core/learner/templates/deployment.yaml +++ b/kubernetes/helm_charts/core/learner/templates/deployment.yaml @@ -157,5 +157,15 @@ spec: - name: http-{{ .Chart.Name }} protocol: TCP port: {{ .Values.network.targetport }} +{{- if .Values.learner_opa_enabled }} + - name: opa-metrics + port: 8181 + protocol: TCP + targetPort: 8181 + - name: envoy-metrics + port: 10000 + protocol: TCP + targetPort: 10000 +{{- end }} selector: app: {{ .Chart.Name }} diff --git a/kubernetes/helm_charts/core/learner/templates/envoy-config.yaml b/kubernetes/helm_charts/core/learner/templates/envoy-config.yaml index 61f4338ff..5c70cfe9d 100644 --- a/kubernetes/helm_charts/core/learner/templates/envoy-config.yaml +++ b/kubernetes/helm_charts/core/learner/templates/envoy-config.yaml @@ -29,6 +29,15 @@ data: domains: - "*" routes: + - match: + prefix: "/opa/metrics" + route: + prefix_rewrite: "/metrics" + cluster: opa + typed_per_filter_config: + envoy.filters.http.ext_authz: + "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + disabled: true - match: prefix: "{{ .Values.livenessProbe.httpGet.path }}" route: @@ -71,6 +80,18 @@ data: socket_address: address: 127.0.0.1 port_value: {{ .Values.network.targetport }} + - name: opa + connect_timeout: 5s + type: static + load_assignment: + cluster_name: opa + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: 127.0.0.1 + port_value: 8181 admin: access_log_path: "/dev/stdout" address: diff --git a/kubernetes/helm_charts/core/learner/templates/serviceMonitor.yaml b/kubernetes/helm_charts/core/learner/templates/serviceMonitor.yaml new file mode 100644 index 000000000..5d659175c --- /dev/null +++ b/kubernetes/helm_charts/core/learner/templates/serviceMonitor.yaml @@ -0,0 +1,34 @@ +{{- if .Values.learner_opa_enabled }} +{{- if .Values.serviceMonitor.enabled }} +{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ .Chart.Name }}-service + namespace: {{ .Values.namespace }} + labels: + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} +spec: + endpoints: + - honorLabels: true + interval: 30s + path: /opa/metrics + port: opa-metrics + scheme: http + scrapeTimeout: 10s + - honorLabels: true + interval: 30s + path: /stats/prometheus + port: envoy-metrics + scheme: http + scrapeTimeout: 10s + jobLabel: {{ .Chart.Name }} + namespaceSelector: + matchNames: + - {{ default .Values.namespace .Release.Namespace }} + selector: + matchLabels: + app: {{ .Chart.Name }} +{{- end }} +{{- end }} +{{- end }} diff --git a/kubernetes/helm_charts/core/learner/values.j2 b/kubernetes/helm_charts/core/learner/values.j2 index 9a463b202..7a0797b4d 100644 --- a/kubernetes/helm_charts/core/learner/values.j2 +++ b/kubernetes/helm_charts/core/learner/values.j2 @@ -59,6 +59,12 @@ initcontainer_resources: learner_access_basepath: {{ learner_access_basepath | default('/keys/') }} +serviceMonitor: + enabled: true + labels: # labels with which the prometheus choose the serviceMonitor + app: prometheus-operator + release: prometheus-operator + autoscaling: enabled: {{ learner_autoscaling_enabled | default('false') }} minReplicas: {{ learner_autoscaling_minReplicas|default(1) }} diff --git a/kubernetes/helm_charts/core/lms/templates/deployment.yaml b/kubernetes/helm_charts/core/lms/templates/deployment.yaml index d394b5f75..ccefa7062 100644 --- a/kubernetes/helm_charts/core/lms/templates/deployment.yaml +++ b/kubernetes/helm_charts/core/lms/templates/deployment.yaml @@ -162,5 +162,15 @@ spec: - name: http-{{ .Chart.Name }} protocol: TCP port: {{ .Values.network.targetport }} +{{- if .Values.lms_opa_enabled }} + - name: opa-metrics + port: 8181 + protocol: TCP + targetPort: 8181 + - name: envoy-metrics + port: 10000 + protocol: TCP + targetPort: 10000 +{{- end }} selector: app: {{ .Chart.Name }} diff --git a/kubernetes/helm_charts/core/lms/templates/envoy-config.yaml b/kubernetes/helm_charts/core/lms/templates/envoy-config.yaml index 05961809e..5d08a0abb 100644 --- a/kubernetes/helm_charts/core/lms/templates/envoy-config.yaml +++ b/kubernetes/helm_charts/core/lms/templates/envoy-config.yaml @@ -29,6 +29,15 @@ data: domains: - "*" routes: + - match: + prefix: "/opa/metrics" + route: + prefix_rewrite: "/metrics" + cluster: opa + typed_per_filter_config: + envoy.filters.http.ext_authz: + "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute + disabled: true - match: prefix: "{{ .Values.livenessProbe.httpGet.path }}" route: @@ -71,6 +80,18 @@ data: socket_address: address: 127.0.0.1 port_value: {{ .Values.network.targetport }} + - name: opa + connect_timeout: 5s + type: static + load_assignment: + cluster_name: opa + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: 127.0.0.1 + port_value: 8181 admin: access_log_path: "/dev/stdout" address: diff --git a/kubernetes/helm_charts/core/lms/templates/serviceMonitor.yaml b/kubernetes/helm_charts/core/lms/templates/serviceMonitor.yaml new file mode 100644 index 000000000..06b49f996 --- /dev/null +++ b/kubernetes/helm_charts/core/lms/templates/serviceMonitor.yaml @@ -0,0 +1,34 @@ +{{- if .Values.lms_opa_enabled }} +{{- if .Values.serviceMonitor.enabled }} +{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ .Chart.Name }}-service + namespace: {{ .Values.namespace }} + labels: + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} +spec: + endpoints: + - honorLabels: true + interval: 30s + path: /opa/metrics + port: opa-metrics + scheme: http + scrapeTimeout: 10s + - honorLabels: true + interval: 30s + path: /stats/prometheus + port: envoy-metrics + scheme: http + scrapeTimeout: 10s + jobLabel: {{ .Chart.Name }} + namespaceSelector: + matchNames: + - {{ default .Values.namespace .Release.Namespace }} + selector: + matchLabels: + app: {{ .Chart.Name }} +{{- end }} +{{- end }} +{{- end }} diff --git a/kubernetes/helm_charts/core/lms/values.j2 b/kubernetes/helm_charts/core/lms/values.j2 index 519736aaa..43e51a287 100644 --- a/kubernetes/helm_charts/core/lms/values.j2 +++ b/kubernetes/helm_charts/core/lms/values.j2 @@ -58,6 +58,12 @@ initcontainer_resources: lms_access_basepath: {{ lms_access_basepath | default('/keys/') }} +serviceMonitor: + enabled: true + labels: # labels with which the prometheus choose the serviceMonitor + app: prometheus-operator + release: prometheus-operator + autoscaling: enabled: {{ lms_autoscaling_enabled | default('false') }} minReplicas: {{ lms_autoscaling_minReplicas|default(1) }} -- GitLab