dns/cluster/prometheus.yaml (86 lines of code) (raw):

# Copyright 2018 The Kubernetes Authors. # # Licensed 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. # Prometheus metrics monitoring pod and configuration. To use this: # # $ kubectl create -f prometheus.yaml # # The Prometheus UI can be accessed via kubectl port-forward: # # $ kubectl get pods -l app=prometheus -o name \ # | sed 's/^.*\///' \ # | xargs -I{} kubectl port-forward {} 9090:9090 # # Go to http://localhost:9090 on your browser to see the prometheus UI. apiVersion: v1 kind: ConfigMap metadata: name: prometheus data: prometheus.yaml: |- global: scrape_interval: 5s scrape_timeout: 5s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'kube-dns' scheme: http kubernetes_sd_configs: - api_servers: - 'https://kubernetes.default.svc' in_cluster: true role: container # Note: this configuration selects the dnsmasq-metrics and # kubedns containers by name to include the dns daemons that are # created by the performance test. In production, it should # filter out first by the k8s-app and kube-system namespace as # well. relabel_configs: - source_labels: [__meta_kubernetes_pod_container_name] action: keep regex: (dnsmasq-metrics|kubedns) - source_labels: [__meta_kubernetes_pod_container_port_list] action: replace regex: (?:.*),metrics=(\d+)(?:.*) replacement: ${1} target_label: __metrics_port__ - source_labels: [__address__, __metrics_port__] action: replace regex: (.+):(?:\d+);(\d+) replacement: ${1}:${2} target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_pod_container_name] action: replace target_label: kubernetes_container_name - 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 --- apiVersion: v1 kind: Pod metadata: labels: app: prometheus name: prometheus spec: containers: - args: - -config.file=/etc/prometheus/prometheus.yaml - -storage.local.path=/prometheus - -storage.local.retention=72h command: - /bin/prometheus image: quay.io/prometheus/prometheus:v1.0.1 imagePullPolicy: IfNotPresent name: prometheus ports: - containerPort: 9090 protocol: TCP resources: requests: cpu: 100m memory: 100Mi terminationMessagePath: /dev/termination-log volumeMounts: - name: data mountPath: /prometheus - name: config-volume mountPath: /etc/prometheus dnsPolicy: ClusterFirst restartPolicy: Always terminationGracePeriodSeconds: 30 volumes: - emptyDir: {} name: data - configMap: defaultMode: 420 name: prometheus name: config-volume