You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/12/15 17:03:28 UTC

[pulsar] branch master updated: Add monitoring.yaml for EKS (#3194)

This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new d6e5c95  Add monitoring.yaml for EKS (#3194)
d6e5c95 is described below

commit d6e5c95f3c888843b58432f1a39020b83f690d0c
Author: Tenzin Wangdhen <si...@gmail.com>
AuthorDate: Sat Dec 15 09:03:24 2018 -0800

    Add monitoring.yaml for EKS (#3194)
---
 deployment/kubernetes/aws/monitoring.yaml | 267 ++++++++++++++++++++++++++++++
 1 file changed, 267 insertions(+)

diff --git a/deployment/kubernetes/aws/monitoring.yaml b/deployment/kubernetes/aws/monitoring.yaml
new file mode 100644
index 0000000..24acb82
--- /dev/null
+++ b/deployment/kubernetes/aws/monitoring.yaml
@@ -0,0 +1,267 @@
+#
+# 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.
+#
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+    name: prometheus-config
+data:
+    # Include prometheus configuration file, setup to monitor all the
+    # Kubernetes pods with the "scrape=true" annotation.
+    prometheus.yml: |
+        global:
+            scrape_interval: 15s
+        scrape_configs:
+          - job_name: 'prometheus'
+            static_configs:
+              - targets: ['localhost:9090']
+          - job_name: 'kubernetes-pods'
+            kubernetes_sd_configs:
+              - role: pod
+
+            relabel_configs:
+              - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
+                action: keep
+                regex: true
+              - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
+                action: replace
+                target_label: __metrics_path__
+                regex: (.+)
+              - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
+                action: replace
+                regex: ([^:]+)(?::\d+)?;(\d+)
+                replacement: $1:$2
+                target_label: __address__
+              - action: labelmap
+                regex: __meta_kubernetes_pod_label_(.+)
+              - source_labels: [__meta_kubernetes_namespace]
+                action: replace
+                target_label: kubernetes_namespace
+              - source_labels: [__meta_kubernetes_pod_label_component]
+                action: replace
+                target_label: job
+              - source_labels: [__meta_kubernetes_pod_name]
+                action: replace
+                target_label: kubernetes_pod_name
+
+---
+
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+    name: task-pv-volume
+    labels:
+        type: local
+spec:
+    storageClassName: gp2
+    capacity:
+        storage: 100Gi
+    accessModes:
+    - ReadWriteOnce
+    hostPath:
+        path: "/mnt/data"
+
+---
+
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+    name: prometheus-data-volume
+    annotations:
+        # Allow relaxed durability for stats storage
+        volume.beta.kubernetes.io/mount-options: "discard"
+spec:
+    resources:
+        requests:
+            storage: 50Gi
+    accessModes:
+      - ReadWriteOnce
+    storageClassName: gp2
+
+---
+
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+    name: standard
+provisioner: kubernetes.io/aws-ebs
+parameters:
+    type: gp2
+    zones: us-west-2a, us-west-2b, us-west-2c
+
+---
+
+apiVersion: apps/v1beta1
+kind: Deployment
+metadata:
+    name: prometheus
+spec:
+    replicas: 1
+    template:
+        metadata:
+            labels:
+                app: pulsar
+                component: prometheus
+        spec:
+            containers:
+              - name: prometheus
+                image: prom/prometheus:v1.6.3
+                volumeMounts:
+                  - name: config-volume
+                    mountPath: /etc/prometheus
+                  - name: data-volume
+                    mountPath: /prometheus
+                ports:
+                  - containerPort: 9090
+            volumes:
+              - name: config-volume
+                configMap:
+                    name: prometheus-config
+              - name: data-volume
+                persistentVolumeClaim:
+                  claimName: prometheus-data-volume
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+    name: prometheus
+    labels:
+        app: pulsar
+        component: prometheus
+spec:
+    type: NodePort
+    ports:
+      - name: prometheus
+        nodePort: 30003
+        port: 9090
+        protocol: TCP
+    selector:
+        app: pulsar
+        component: prometheus
+
+
+---
+## GRAFANA
+
+apiVersion: apps/v1beta1
+kind: Deployment
+metadata:
+    name: grafana
+spec:
+    replicas: 1
+    template:
+        metadata:
+            labels:
+                app: pulsar
+                component: grafana
+        spec:
+            containers:
+              - name: grafana
+                image: apachepulsar/pulsar-grafana:latest
+                ports:
+                  - containerPort: 3000
+                env:
+                  - name: PROMETHEUS_URL
+                    value: http://prometheus:9090/
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+    name: grafana
+    labels:
+        app: pulsar
+        component: grafana
+spec:
+    type: NodePort
+    ports:
+      - name: grafana
+        nodePort: 30004
+        port: 3000
+        protocol: TCP 
+    selector:
+        app: pulsar
+        component: grafana
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: grafana-proxy
+  labels:
+    app: pulsar
+    component: grafana
+spec:
+  type: LoadBalancer
+  ports:
+    - name: http
+      nodePort: 30006
+      port: 3000
+      protocol: TCP
+  selector:
+    app: pulsar
+    component: grafana
+
+---
+## Include detailed Pulsar dashboard
+
+apiVersion: apps/v1beta1
+kind: Deployment
+metadata:
+    name: pulsar-dashboard
+spec:
+    replicas: 1
+    template:
+        metadata:
+            labels:
+                app: pulsar
+                component: dashboard
+        spec:
+            containers:
+              - name: grafana
+                image: apachepulsar/pulsar-dashboard:latest
+                ports:
+                  - containerPort: 80
+                env:
+                  - name: SERVICE_URL
+                    value: http://broker:8080/
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: pulsar-dashboard-proxy
+  labels:
+    app: pulsar
+    component: dashboard
+spec:
+  type: LoadBalancer
+  ports:
+    - name: http
+      nodePort: 30005
+      port: 80
+      protocol: TCP
+  selector:
+    app: pulsar
+    component: dashboard