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