Skip to content

Instantly share code, notes, and snippets.

@ilackarms
Created April 24, 2017 14:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ilackarms/0fb8cab7964fecec980994519f467a14 to your computer and use it in GitHub Desktop.
Save ilackarms/0fb8cab7964fecec980994519f467a14 to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: Template
metadata:
name: prometheus
parameters:
- description: The namespace to instantiate prometheus under. Defaults to 'default'.
name: NAMESPACE
value: default
objects:
- apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus
namespace: "${NAMESPACE}"
- apiVersion: v1
kind: ClusterRoleBinding
metadata:
name: prometheus-cluster-reader
roleRef:
name: cluster-reader
subjects:
- kind: ServiceAccount
name: prometheus
namespace: "${NAMESPACE}"
- apiVersion: v1
kind: Service
metadata:
labels:
name: prometheus
name: prometheus
namespace: "${NAMESPACE}"
spec:
ports:
- name: prometheus
port: 80
protocol: TCP
targetPort: 9090
selector:
app: prometheus
- apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/scrape: "true"
labels:
name: alertmanager
name: alertmanager
namespace: "${NAMESPACE}"
spec:
ports:
- name: alertmanager
port: 9093
protocol: TCP
targetPort: 9093
selector:
app: alertmanager
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: prometheus
name: prometheus
namespace: "${NAMESPACE}"
spec:
replicas: 1
selector:
matchLabels:
app: prometheus
template:
metadata:
labels:
app: prometheus
name: prometheus
spec:
serviceAccountName: prometheus
containers:
- args:
- -alertmanager.url=http://alertmanager:9093/
- -storage.local.retention=6h
- -storage.local.memory-chunks=500000
- -config.file=/etc/prometheus/prometheus.yml
image: prom/prometheus
imagePullPolicy: IfNotPresent
name: prometheus
volumeMounts:
- mountPath: /etc/prometheus
name: config-volume
- mountPath: /prometheus
name: data-volume
restartPolicy: Always
volumes:
- configMap:
defaultMode: 420
name: prometheus
name: config-volume
- emptyDir: {}
name: data-volume
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: alertmanager
name: alertmanager
namespace: "${NAMESPACE}"
spec:
replicas: 1
selector:
matchLabels:
app: alertmanager
template:
metadata:
labels:
app: alertmanager
name: alertmanager
spec:
serviceAccountName: prometheus
containers:
- args:
- -config.file=/etc/alertmanager/alertmanager.yaml
image: quay.io/prometheus/alertmanager
imagePullPolicy: IfNotPresent
name: alertmanager
ports:
- containerPort: 9093
name: web
volumeMounts:
- mountPath: /etc/alertmanager
name: config-volume
- mountPath: /alertmanager
name: data-volume
restartPolicy: Always
volumes:
- configMap:
defaultMode: 420
name: alertmanager
name: config-volume
- emptyDir: {}
name: data-volume
- apiVersion: v1
kind: ConfigMap
metadata:
name: alertmanager
namespace: "${NAMESPACE}"
data:
alertmanager.yaml: |
global:
hipchat_auth_token: E77DVnSNpdFmApVtAgaAUtLdbhFRWWdli3kmOcoE
hipchat_url: 'https://prometheus-openshift-demo.hipchat.com/'
route:
receiver: team-X-hipchat
receivers:
- name: 'team-X-hipchat'
hipchat_configs:
- auth_token: E77DVnSNpdFmApVtAgaAUtLdbhFRWWdli3kmOcoE
room_id: 3784528
message_format: html
notify: true
- apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus
namespace: "${NAMESPACE}"
data:
prometheus.rules: |
ALERT SecretRequestsHigh
IF sum(apiserver_request_count{resource="secrets"}) > 10
FOR 1s
ANNOTATIONS {
summary = "lots of requests for secrets. strange???",
description = "",
}
prometheus.yml: |
rule_files:
- 'prometheus.rules'
scrape_configs:
- job_name: 'kubernetes-apiserver'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
- job_name: 'kubernetes-nodes'
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:
- role: node
- job_name: 'kubernetes-service-endpoints'
kubernetes_sd_configs:
- role: endpoints
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment