Created
April 3, 2017 10:06
-
-
Save clsung/f997bc7de811cfcb57f7ef69b5c9305f to your computer and use it in GitHub Desktop.
Prometheus on K8s
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 : Service | |
| metadata: | |
| name: prometheus-svc | |
| labels: | |
| name: prometheus-svc | |
| kubernetes.io/name: "Prometheus" | |
| spec: | |
| selector: | |
| app: prometheus | |
| type: LoadBalancer | |
| ports: | |
| - port: 9090 | |
| name: prometheus | |
| protocol: TCP | |
| targetPort: 9090 # container port | |
| --- | |
| apiVersion: extensions/v1beta1 | |
| kind: Deployment | |
| metadata: | |
| labels: | |
| name: prometheus-deployment | |
| name: prometheus | |
| spec: | |
| replicas: 1 | |
| template: | |
| metadata: | |
| labels: | |
| app: prometheus | |
| annotations: | |
| prometheus.io/scrape: 'true' | |
| spec: | |
| containers: | |
| - image: quay.io/prometheus/prometheus:v1.0.1 | |
| name: prometheus | |
| command: | |
| - "/bin/prometheus" | |
| args: | |
| - "-config.file=/etc/prometheus/prometheus.yml" | |
| - "-storage.local.path=/prometheus" | |
| - "-storage.local.retention=24h" | |
| ports: | |
| - containerPort: 9090 | |
| protocol: TCP | |
| volumeMounts: | |
| - mountPath: "/prometheus" | |
| name: data | |
| - mountPath: "/etc/prometheus" | |
| name: config-volume | |
| resources: | |
| requests: | |
| cpu: 100m | |
| memory: 100Mi | |
| limits: | |
| cpu: 500m | |
| memory: 2500Mi | |
| volumes: | |
| - emptyDir: {} | |
| name: data | |
| - configMap: | |
| name: prometheus-config | |
| name: config-volume | |
| --- | |
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: prometheus-config | |
| data: | |
| prometheus.yml: | | |
| global: | |
| scrape_interval: 30s | |
| scrape_timeout: 30s | |
| scrape_configs: | |
| - job_name: 'prometheus' | |
| static_configs: | |
| - targets: ['localhost:9090'] | |
| - 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 | |
| scrape_interval: 5s | |
| 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment