Skip to content

Instantly share code, notes, and snippets.

@adaam
Created November 3, 2016 09:44
Show Gist options
  • Save adaam/ebcfbed9ac459238d85195cb0e76aeb1 to your computer and use it in GitHub Desktop.
Save adaam/ebcfbed9ac459238d85195cb0e76aeb1 to your computer and use it in GitHub Desktop.
k8s 1.2 with promethous 0.19.2 with configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus
data:
prometheus.yml: |-
global:
scrape_interval: 15s
scrape_configs:
# etcd is living outside of our cluster and we configure
# it directly.
- job_name: 'etcd'
target_groups:
- targets:
- YOUR_ETCD_ADDRESS:2379
- job_name: 'kubernetes_components'
kubernetes_sd_configs:
- api_servers:
- 'https://kubernetes.default'
in_cluster: true
# This configures Prometheus to identify itself when scraping
# metrics from Kubernetes cluster components.
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
# Prometheus provides meta labels for each monitoring targets. We use
# these to select targets we want to monitor and to modify labels attached
# to scraped metrics.
relabel_configs:
# Only scrape apiserver and kubelets.
- source_labels: [__meta_kubernetes_role]
action: keep
regex: (?:apiserver|node)
# Redefine the Prometheus job based on the monitored Kuberentes component.
- source_labels: [__meta_kubernetes_role]
target_label: job
replacement: kubernetes_$1
# Attach all node labels to the metrics scraped from the components running
# on that node.
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- job_name: 'kubernetes_services'
kubernetes_sd_configs:
- api_servers:
- 'https://kubernetes.default'
in_cluster: true
relabel_configs:
- source_labels: [__meta_kubernetes_role, __meta_kubernetes_service_annotation_prometheus_io_scrape]
action: keep
regex: endpoint;true
- source_labels: [__meta_kubernetes_service_name]
target_label: job
- source_labels: [__meta_kubernetes_namespace]
target_label: namespace
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/scrape: 'true'
labels:
name: prometheus
name: prometheus2
spec:
selector:
app: prometheus
type: NodePort
ports:
- name: prometheus
protocol: TCP
port: 9090
nodePort: 30900
----
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: prometheus
spec:
replicas: 1
selector:
matchLabels:
app: prometheus
template:
metadata:
name: prometheus
labels:
app: prometheus
spec:
containers:
- name: prometheus
image: quay.io/coreos/prometheus:0.19.2
args:
- '-storage.local.retention=6h'
- '-storage.local.memory-chunks=500000'
- '-config.file=/etc/prometheus/prometheus.yml'
ports:
- name: web
containerPort: 9090
volumeMounts:
- name: config-volume
mountPath: /etc/prometheus
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 1000m
memory: 5000Mi
volumes:
- name: config-volume
configMap:
name: prometheus
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment