Add zookeeper metrics port and PodMonitors (#44)
* Add 'http' port specification to zookeeper statefulset This makes the zookeeper spec inline with the other statefulset specs in this chart and it provides a port target for custom podMonitors * Added PodMonitors for bookie, broker, proxy, and zookeeper New PodMonitors are needed for prometheus-operator to pickup scrape targets. Defaults to disabled so users need to opt in to deploy * Added Apache license info to podmonitor yamls
This commit is contained in:
parent
682dfcee69
commit
6b92881149
42
charts/pulsar/templates/bookkeeper-podmonitor.yaml
Normal file
42
charts/pulsar/templates/bookkeeper-podmonitor.yaml
Normal file
@ -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 }}
|
||||||
42
charts/pulsar/templates/broker-podmonitor.yaml
Normal file
42
charts/pulsar/templates/broker-podmonitor.yaml
Normal file
@ -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 }}
|
||||||
42
charts/pulsar/templates/proxy-podmonitor.yaml
Normal file
42
charts/pulsar/templates/proxy-podmonitor.yaml
Normal file
@ -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 }}
|
||||||
42
charts/pulsar/templates/zookeeper-podmonitor.yaml
Normal file
42
charts/pulsar/templates/zookeeper-podmonitor.yaml
Normal file
@ -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 }}
|
||||||
@ -90,6 +90,9 @@ spec:
|
|||||||
bin/generate-zookeeper-config.sh conf/zookeeper.conf;
|
bin/generate-zookeeper-config.sh conf/zookeeper.conf;
|
||||||
bin/pulsar zookeeper;
|
bin/pulsar zookeeper;
|
||||||
ports:
|
ports:
|
||||||
|
# prometheus needs to access /metrics endpoint
|
||||||
|
- name: http
|
||||||
|
containerPort: {{ .Values.zookeeper.ports.http }}
|
||||||
- name: client
|
- name: client
|
||||||
containerPort: {{ .Values.zookeeper.ports.client }}
|
containerPort: {{ .Values.zookeeper.ports.client }}
|
||||||
- name: follower
|
- name: follower
|
||||||
|
|||||||
@ -253,7 +253,14 @@ zookeeper:
|
|||||||
updateStrategy:
|
updateStrategy:
|
||||||
type: RollingUpdate
|
type: RollingUpdate
|
||||||
podManagementPolicy: OrderedReady
|
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:
|
ports:
|
||||||
|
http: 8000
|
||||||
client: 2181
|
client: 2181
|
||||||
clientTls: 2281
|
clientTls: 2281
|
||||||
follower: 2888
|
follower: 2888
|
||||||
@ -355,6 +362,12 @@ bookkeeper:
|
|||||||
updateStrategy:
|
updateStrategy:
|
||||||
type: RollingUpdate
|
type: RollingUpdate
|
||||||
podManagementPolicy: Parallel
|
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:
|
ports:
|
||||||
http: 8000
|
http: 8000
|
||||||
bookie: 3181
|
bookie: 3181
|
||||||
@ -523,6 +536,12 @@ broker:
|
|||||||
# so the metrics are correctly rendered in grafana dashboard
|
# so the metrics are correctly rendered in grafana dashboard
|
||||||
component: broker
|
component: broker
|
||||||
replicaCount: 3
|
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:
|
ports:
|
||||||
http: 8080
|
http: 8080
|
||||||
https: 8443
|
https: 8443
|
||||||
@ -609,6 +628,12 @@ proxy:
|
|||||||
# so the metrics are correctly rendered in grafana dashboard
|
# so the metrics are correctly rendered in grafana dashboard
|
||||||
component: proxy
|
component: proxy
|
||||||
replicaCount: 3
|
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:
|
# nodeSelector:
|
||||||
# cloud.google.com/gke-nodepool: default-pool
|
# cloud.google.com/gke-nodepool: default-pool
|
||||||
probe:
|
probe:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user