From ea5d9db5e9ddabd3aaeffd25f8bf1d279733708e Mon Sep 17 00:00:00 2001
From: Fabian Reinartz <fab.reinartz@gmail.com>
Date: Thu, 20 Oct 2016 17:49:40 +0200
Subject: [PATCH] Add documentation for example service monitoring

---
 README.md                                     | 41 +++++++++++++++----
 hack/example-service-monitoring/deploy        |  7 ++++
 hack/example-service-monitoring/teardown      |  7 ++++
 .../example-app/prometheus-frontend-svc.yaml  |  1 +
 .../example-app/prometheus-frontend.yaml      |  1 +
 .../example-app/servicemonitor-frontend.yaml  |  1 +
 6 files changed, 49 insertions(+), 9 deletions(-)
 create mode 100755 hack/example-service-monitoring/deploy
 create mode 100755 hack/example-service-monitoring/teardown

diff --git a/README.md b/README.md
index c1a0333d..a224df87 100644
--- a/README.md
+++ b/README.md
@@ -22,23 +22,46 @@ which manages Prometheus servers and their configuration in your cluster. To ins
 controller, the [node_exporter](https://github.com/prometheus/node_exporter),
 [Grafana](https://grafana.org) including default dashboards, and the Prometheus server, run:
 
-```
-export KUBECONFIG=<path>   # defaults to "~/.kube/config"
-export KUBE_NAMESPACE=<ns> # defaults to "default"
+```bash
+export KUBECONFIG=<path>          # defaults to "~/.kube/config"
+export KUBE_NAMESPACE=<ns>        # defaults to "default"
 hack/cluster-monitoring/deploy
 ```
 
+After all pods are ready, you can reach:
+
+* Prometheus UI on node port `30900`
+* Grafana on node port `30902`
+
 To tear it all down again, run:
 
-```
+```bash
 hack/cluster-monitoring/teardown
 ```
 
-After all pods are ready, you can reach:
-
-* Prometheus UI on node port `30900`
-* Grafana on node port `30902`
+__All services in the manifest still contain the `prometheus.io/scrape = true` annotations. It is not
+used by the Prometheus controller. They remain for convential deployments as in
+[this example configuration](https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml).__
 
 ## Monitoring custom services
 
-TODO
+The example manifests in [/manifests/examples/example-app](/manifests/examples/example-app)
+deploy a fake service into the `production` and `development` namespaces and define
+a Prometheus server monitoring them.
+
+```bash
+kubectl --kubeconfig="$KUBECONFIG" create namespace production
+kubectl --kubeconfig="$KUBECONFIG" create namespace development
+hack/cluster-monitoring/deploy
+```
+
+After all pods are ready you can reach the Prometheus server monitoring your services
+on node port `30100`.
+
+Teardown:
+
+```bash
+hack/cluster-monitoring/teardown
+```
+
+
diff --git a/hack/example-service-monitoring/deploy b/hack/example-service-monitoring/deploy
new file mode 100755
index 00000000..36b72754
--- /dev/null
+++ b/hack/example-service-monitoring/deploy
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+if [ -z "${KUBECONFIG}" ]; then
+    KUBECONFIG=~/.kube/config
+fi
+
+kubectl --kubeconfig="$KUBECONFIG" create -f manifests/examples/example-app
\ No newline at end of file
diff --git a/hack/example-service-monitoring/teardown b/hack/example-service-monitoring/teardown
new file mode 100755
index 00000000..2be7dcfd
--- /dev/null
+++ b/hack/example-service-monitoring/teardown
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+if [ -z "${KUBECONFIG}" ]; then
+    KUBECONFIG=~/.kube/config
+fi
+
+kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" delete -f manifests/examples/example-app
\ No newline at end of file
diff --git a/manifests/examples/example-app/prometheus-frontend-svc.yaml b/manifests/examples/example-app/prometheus-frontend-svc.yaml
index 6193c014..157d2f99 100644
--- a/manifests/examples/example-app/prometheus-frontend-svc.yaml
+++ b/manifests/examples/example-app/prometheus-frontend-svc.yaml
@@ -2,6 +2,7 @@ apiVersion: v1
 kind: Service
 metadata:
   name: prometheus-frontend
+  namespace: default
 spec:
   type: NodePort
   ports:
diff --git a/manifests/examples/example-app/prometheus-frontend.yaml b/manifests/examples/example-app/prometheus-frontend.yaml
index 45e3929a..b1634747 100644
--- a/manifests/examples/example-app/prometheus-frontend.yaml
+++ b/manifests/examples/example-app/prometheus-frontend.yaml
@@ -2,6 +2,7 @@ apiVersion: prometheus.coreos.com/v1alpha1
 kind: Prometheus
 metadata:
   name: prometheus-frontend
+  namespace: default
   labels:
     prometheus: frontend
 spec:
diff --git a/manifests/examples/example-app/servicemonitor-frontend.yaml b/manifests/examples/example-app/servicemonitor-frontend.yaml
index fe0df56f..7e03b4f0 100644
--- a/manifests/examples/example-app/servicemonitor-frontend.yaml
+++ b/manifests/examples/example-app/servicemonitor-frontend.yaml
@@ -2,6 +2,7 @@ apiVersion: prometheus.coreos.com/v1alpha1
 kind: ServiceMonitor
 metadata:
   name: frontend
+  namespace: default
   labels:
     team: frontend
 spec:
-- 
GitLab