diff --git a/charts/pulsar/templates/bookkeeper-podmonitor.yaml b/charts/pulsar/templates/bookkeeper-podmonitor.yaml new file mode 100644 index 0000000..bec86fe --- /dev/null +++ b/charts/pulsar/templates/bookkeeper-podmonitor.yaml @@ -0,0 +1,42 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# deploy bookkeeper PodMonitor only when `$.Values.bookkeeper.podMonitor.enabled` is true +{{- if $.Values.bookkeeper.podMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: PodMonitor +metadata: + name: {{ template "pulsar.name" . }}-bookie + labels: + app: {{ template "pulsar.name" . }} + chart: {{ template "pulsar.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + jobLabel: bookie + podMetricsEndpoints: + - port: http + path: /metrics + scheme: http + interval: {{ $.Values.bookkeeper.podMonitor.interval }} + scrapeTimeout: {{ $.Values.bookkeeper.podMonitor.scrapeTimeout }} + selector: + matchLabels: + component: bookie +{{- end }} \ No newline at end of file diff --git a/charts/pulsar/templates/broker-podmonitor.yaml b/charts/pulsar/templates/broker-podmonitor.yaml new file mode 100644 index 0000000..c3474b2 --- /dev/null +++ b/charts/pulsar/templates/broker-podmonitor.yaml @@ -0,0 +1,42 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# deploy broker PodMonitor only when `$.Values.broker.podMonitor.enabled` is true +{{- if $.Values.broker.podMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: PodMonitor +metadata: + name: {{ template "pulsar.name" . }}-broker + labels: + app: {{ template "pulsar.name" . }} + chart: {{ template "pulsar.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + jobLabel: broker + podMetricsEndpoints: + - port: http + path: /metrics + scheme: http + interval: {{ $.Values.broker.podMonitor.interval }} + scrapeTimeout: {{ $.Values.broker.podMonitor.scrapeTimeout }} + selector: + matchLabels: + component: broker +{{- end }} \ No newline at end of file diff --git a/charts/pulsar/templates/proxy-podmonitor.yaml b/charts/pulsar/templates/proxy-podmonitor.yaml new file mode 100644 index 0000000..bf925bf --- /dev/null +++ b/charts/pulsar/templates/proxy-podmonitor.yaml @@ -0,0 +1,42 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# deploy proxy PodMonitor only when `$.Values.proxy.podMonitor.enabled` is true +{{- if $.Values.proxy.podMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: PodMonitor +metadata: + name: {{ template "pulsar.name" . }}-proxy + labels: + app: {{ template "pulsar.name" . }} + chart: {{ template "pulsar.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + jobLabel: proxy + podMetricsEndpoints: + - port: http + path: /metrics + scheme: http + interval: {{ $.Values.proxy.podMonitor.interval }} + scrapeTimeout: {{ $.Values.proxy.podMonitor.scrapeTimeout }} + selector: + matchLabels: + component: proxy +{{- end }} \ No newline at end of file diff --git a/charts/pulsar/templates/zookeeper-podmonitor.yaml b/charts/pulsar/templates/zookeeper-podmonitor.yaml new file mode 100644 index 0000000..73b1267 --- /dev/null +++ b/charts/pulsar/templates/zookeeper-podmonitor.yaml @@ -0,0 +1,42 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# deploy zookeeper PodMonitor only when `$.Values.zookeeper.podMonitor.enabled` is true +{{- if $.Values.zookeeper.podMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: PodMonitor +metadata: + name: {{ template "pulsar.name" . }}-zookeeper + labels: + app: {{ template "pulsar.name" . }} + chart: {{ template "pulsar.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + jobLabel: zookeeper + podMetricsEndpoints: + - port: http + path: /metrics + scheme: http + interval: {{ $.Values.zookeeper.podMonitor.interval }} + scrapeTimeout: {{ $.Values.zookeeper.podMonitor.scrapeTimeout }} + selector: + matchLabels: + component: zookeeper +{{- end }} \ No newline at end of file diff --git a/charts/pulsar/templates/zookeeper-statefulset.yaml b/charts/pulsar/templates/zookeeper-statefulset.yaml index 598a3cf..c32678d 100644 --- a/charts/pulsar/templates/zookeeper-statefulset.yaml +++ b/charts/pulsar/templates/zookeeper-statefulset.yaml @@ -90,6 +90,9 @@ spec: bin/generate-zookeeper-config.sh conf/zookeeper.conf; bin/pulsar zookeeper; ports: + # prometheus needs to access /metrics endpoint + - name: http + containerPort: {{ .Values.zookeeper.ports.http }} - name: client containerPort: {{ .Values.zookeeper.ports.client }} - name: follower diff --git a/charts/pulsar/values.yaml b/charts/pulsar/values.yaml index 2405432..a9a5735 100644 --- a/charts/pulsar/values.yaml +++ b/charts/pulsar/values.yaml @@ -253,7 +253,14 @@ zookeeper: updateStrategy: type: RollingUpdate podManagementPolicy: OrderedReady + # If using Prometheus-Operator enable this PodMonitor to discover zookeeper scrape targets + # Prometheus-Operator does not add scrape targets based on k8s annotations + podMonitor: + enabled: false + interval: 10s + scrapeTimeout: 10s ports: + http: 8000 client: 2181 clientTls: 2281 follower: 2888 @@ -355,6 +362,12 @@ bookkeeper: updateStrategy: type: RollingUpdate podManagementPolicy: Parallel + # If using Prometheus-Operator enable this PodMonitor to discover bookie scrape targets + # Prometheus-Operator does not add scrape targets based on k8s annotations + podMonitor: + enabled: false + interval: 10s + scrapeTimeout: 10s ports: http: 8000 bookie: 3181 @@ -523,6 +536,12 @@ broker: # so the metrics are correctly rendered in grafana dashboard component: broker replicaCount: 3 + # If using Prometheus-Operator enable this PodMonitor to discover broker scrape targets + # Prometheus-Operator does not add scrape targets based on k8s annotations + podMonitor: + enabled: false + interval: 10s + scrapeTimeout: 10s ports: http: 8080 https: 8443 @@ -609,6 +628,12 @@ proxy: # so the metrics are correctly rendered in grafana dashboard component: proxy replicaCount: 3 + # If using Prometheus-Operator enable this PodMonitor to discover proxy scrape targets + # Prometheus-Operator does not add scrape targets based on k8s annotations + podMonitor: + enabled: false + interval: 10s + scrapeTimeout: 10s # nodeSelector: # cloud.google.com/gke-nodepool: default-pool probe: