Last active
December 1, 2016 12:15
-
-
Save sebgoa/92ebceb26bb90c3f7b870f73e2ff0a5b to your computer and use it in GitHub Desktop.
An all in one local prometheus deployment for Kubernetes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| apiVersion: v1 | |
| kind: Namespace | |
| metadata: | |
| name: monitoring | |
| --- | |
| kind: ConfigMap | |
| metadata: | |
| name: prometheus-config | |
| namespace: monitoring | |
| apiVersion: v1 | |
| data: | |
| prometheus.yml: |- | |
| global: | |
| scrape_interval: 30s | |
| scrape_timeout: 30s | |
| scrape_configs: | |
| - job_name: 'kubernetes-cluster' | |
| scheme: https | |
| tls_config: | |
| ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | |
| bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token | |
| kubernetes_sd_configs: | |
| - api_servers: | |
| - 'https://kubernetes.default.svc' | |
| in_cluster: true | |
| role: apiserver | |
| - job_name: 'kubernetes-nodes' | |
| scheme: https | |
| tls_config: | |
| ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | |
| insecure_skip_verify: true | |
| bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token | |
| kubernetes_sd_configs: | |
| - api_servers: | |
| - 'https://kubernetes.default.svc' | |
| in_cluster: true | |
| role: node | |
| relabel_configs: | |
| - action: labelmap | |
| regex: __meta_kubernetes_node_label_(.+) | |
| - job_name: 'kubernetes-service-endpoints' | |
| scheme: https | |
| kubernetes_sd_configs: | |
| - api_servers: | |
| - 'https://kubernetes.default.svc' | |
| in_cluster: true | |
| role: endpoint | |
| relabel_configs: | |
| - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] | |
| action: keep | |
| regex: true | |
| - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] | |
| action: replace | |
| target_label: __scheme__ | |
| regex: (https?) | |
| - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path] | |
| action: replace | |
| target_label: __metrics_path__ | |
| regex: (.+) | |
| - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] | |
| action: replace | |
| target_label: __address__ | |
| regex: (.+)(?::\d+);(\d+) | |
| replacement: $1:$2 | |
| - action: labelmap | |
| regex: __meta_kubernetes_service_label_(.+) | |
| - source_labels: [__meta_kubernetes_service_namespace] | |
| action: replace | |
| target_label: kubernetes_namespace | |
| - source_labels: [__meta_kubernetes_service_name] | |
| action: replace | |
| target_label: kubernetes_name | |
| - job_name: 'kubernetes-services' | |
| scheme: https | |
| metrics_path: /probe | |
| params: | |
| module: [http_2xx] | |
| kubernetes_sd_configs: | |
| - api_servers: | |
| - 'https://kubernetes.default.svc' | |
| in_cluster: true | |
| role: service | |
| relabel_configs: | |
| - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_probe] | |
| action: keep | |
| regex: true | |
| - source_labels: [__address__] | |
| target_label: __param_target | |
| - target_label: __address__ | |
| replacement: blackbox | |
| - source_labels: [__param_target] | |
| target_label: instance | |
| - action: labelmap | |
| regex: __meta_kubernetes_service_label_(.+) | |
| - source_labels: [__meta_kubernetes_service_namespace] | |
| target_label: kubernetes_namespace | |
| - source_labels: [__meta_kubernetes_service_name] | |
| target_label: kubernetes_name | |
| - job_name: 'kubernetes-pods' | |
| scheme: http | |
| kubernetes_sd_configs: | |
| - api_servers: | |
| - 'https://kubernetes.default.svc' | |
| in_cluster: true | |
| 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_pod_namespace] | |
| action: replace | |
| target_label: kubernetes_namespace | |
| - source_labels: [__meta_kubernetes_pod_name] | |
| action: replace | |
| target_label: kubernetes_pod_name | |
| - source_labels: [__meta_kubernetes_pod_node_name] | |
| action: replace | |
| target_label: kubernetes_pod_node_name | |
| --- | |
| apiVersion: v1 | |
| kind: Service | |
| metadata: | |
| name: prometheus | |
| namespace: monitoring | |
| spec: | |
| ports: | |
| - port: 9090 | |
| protocol: TCP | |
| targetPort: 9090 | |
| selector: | |
| name: prometheus | |
| type: NodePort | |
| --- | |
| apiVersion: extensions/v1beta1 | |
| kind: Deployment | |
| metadata: | |
| labels: | |
| name: prometheus | |
| name: prometheus | |
| namespace: monitoring | |
| spec: | |
| replicas: 1 | |
| selector: | |
| matchLabels: | |
| name: prometheus | |
| strategy: | |
| rollingUpdate: | |
| maxSurge: 1 | |
| maxUnavailable: 1 | |
| type: RollingUpdate | |
| template: | |
| metadata: | |
| creationTimestamp: null | |
| labels: | |
| name: prometheus | |
| annotations: | |
| prometheus.io/scrape: "true" | |
| prometheus.io/port: "9090" | |
| spec: | |
| containers: | |
| - args: | |
| - -config.file=/etc/prometheus/prometheus.yml | |
| - -storage.local.path=/prometheus | |
| - -storage.local.retention=24h | |
| command: | |
| - /bin/prometheus | |
| image: quay.io/prometheus/prometheus:v1.1.3 | |
| imagePullPolicy: IfNotPresent | |
| name: prometheus | |
| ports: | |
| - containerPort: 9090 | |
| protocol: TCP | |
| resources: | |
| limits: | |
| cpu: 500m | |
| memory: 2500Mi | |
| requests: | |
| cpu: 100m | |
| memory: 100Mi | |
| volumeMounts: | |
| - mountPath: /prometheus | |
| name: data | |
| - mountPath: /etc/prometheus | |
| name: config-volume | |
| restartPolicy: Always | |
| securityContext: {} | |
| terminationGracePeriodSeconds: 30 | |
| volumes: | |
| - emptyDir: {} | |
| name: data | |
| - configMap: | |
| name: prometheus-config | |
| name: config-volume | |
| --- | |
| apiVersion: v1 | |
| kind: Service | |
| metadata: | |
| name: grafana | |
| namespace: monitoring | |
| spec: | |
| ports: | |
| - port: 3000 | |
| protocol: TCP | |
| targetPort: 3000 | |
| selector: | |
| name: grafana | |
| type: NodePort | |
| --- | |
| apiVersion: extensions/v1beta1 | |
| kind: Deployment | |
| metadata: | |
| labels: | |
| name: grafana | |
| name: grafana | |
| namespace: monitoring | |
| spec: | |
| replicas: 1 | |
| selector: | |
| matchLabels: | |
| name: grafana | |
| strategy: | |
| rollingUpdate: | |
| maxSurge: 1 | |
| maxUnavailable: 1 | |
| type: RollingUpdate | |
| template: | |
| metadata: | |
| creationTimestamp: null | |
| labels: | |
| name: grafana | |
| spec: | |
| containers: | |
| - image: grafana/grafana | |
| imagePullPolicy: IfNotPresent | |
| name: grafana | |
| ports: | |
| - containerPort: 3000 | |
| protocol: TCP | |
| resources: | |
| limits: | |
| cpu: 500m | |
| memory: 2500Mi | |
| requests: | |
| cpu: 100m | |
| memory: 100Mi | |
| volumeMounts: | |
| - mountPath: /var/lib/grafana | |
| name: data | |
| restartPolicy: Always | |
| securityContext: {} | |
| terminationGracePeriodSeconds: 30 | |
| volumes: | |
| - emptyDir: {} | |
| name: data |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
remove the pv/pvc , add graffana, get rid of service account and put in
monitoringnamespace