Created
July 1, 2019 11:15
-
-
Save jeroenr/42922a3d31e25774614237a1147cd578 to your computer and use it in GitHub Desktop.
This file contains 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: ConfigMap | |
metadata: | |
labels: | |
app: prometheus | |
name: prometheus | |
data: | |
prometheus.yml: | | |
global: | |
evaluation_interval: 1m | |
scrape_interval: 1m | |
scrape_timeout: 10s | |
rule_files: | |
- /etc/config/rules | |
- /etc/config/alerts | |
scrape_configs: | |
- job_name: prometheus | |
static_configs: | |
- targets: | |
- localhost:9090 | |
- job_name: kubernetes-services | |
kubernetes_sd_configs: | |
- role: service | |
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token | |
api_server: https://kubernetes.default.svc | |
tls_config: | |
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | |
namespaces: | |
names: | |
- playground | |
metrics_path: /probe | |
params: | |
module: | |
- http_2xx | |
relabel_configs: | |
- action: keep | |
regex: true | |
source_labels: | |
- __meta_kubernetes_service_annotation_prometheus_io_probe | |
- source_labels: | |
- __address__ | |
target_label: __param_target | |
- replacement: blackbox | |
target_label: __address__ | |
- source_labels: | |
- __param_target | |
target_label: instance | |
- action: labelmap | |
regex: __meta_kubernetes_service_label_(.+) | |
- source_labels: | |
- __meta_kubernetes_namespace | |
target_label: kubernetes_namespace | |
- source_labels: | |
- __meta_kubernetes_service_name | |
target_label: kubernetes_name | |
- job_name: kubernetes-pods | |
kubernetes_sd_configs: | |
- role: pod | |
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token | |
api_server: https://kubernetes.default.svc | |
tls_config: | |
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | |
namespaces: | |
names: | |
- playground | |
relabel_configs: | |
- action: keep | |
regex: true | |
source_labels: | |
- __meta_kubernetes_pod_annotation_prometheus_io_scrape | |
- source_labels: | |
- __meta_kubernetes_pod_container_port_name | |
action: keep | |
regex: metrics | |
- action: replace | |
regex: (.+) | |
source_labels: | |
- __meta_kubernetes_pod_annotation_prometheus_io_path | |
target_label: __metrics_path__ | |
- action: replace | |
regex: ([^:]+)(?::\d+)?;(\d+) | |
replacement: $1:$2 | |
source_labels: | |
- __address__ | |
- __meta_kubernetes_pod_annotation_prometheus_io_port | |
target_label: __address__ | |
- action: labelmap | |
regex: __meta_kubernetes_pod_label_(.+) | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_namespace | |
target_label: kubernetes_namespace | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_name | |
target_label: kubernetes_pod_name | |
--- | |
kind: ServiceAccount | |
apiVersion: v1 | |
metadata: | |
name: prometheus | |
namespace: playground | |
labels: | |
app: prometheus | |
kubernetes.io/cluster-service: "true" | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1beta1 | |
kind: ClusterRole | |
metadata: | |
name: prometheus | |
labels: | |
kubernetes.io/cluster-service: "true" | |
rules: | |
- apiGroups: | |
- "" | |
resources: | |
- nodes | |
- nodes/metrics | |
- services | |
- endpoints | |
- pods | |
verbs: | |
- get | |
- list | |
- watch | |
- apiGroups: | |
- "" | |
resources: | |
- configmaps | |
verbs: | |
- get | |
- nonResourceURLs: | |
- "/metrics" | |
verbs: | |
- get | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1beta1 | |
kind: ClusterRoleBinding | |
metadata: | |
name: prometheus | |
labels: | |
kubernetes.io/cluster-service: "true" | |
roleRef: | |
apiGroup: rbac.authorization.k8s.io | |
kind: ClusterRole | |
name: prometheus | |
subjects: | |
- kind: ServiceAccount | |
name: prometheus | |
namespace: playground | |
--- | |
kind: Deployment | |
apiVersion: apps/v1 | |
metadata: | |
name: prometheus | |
spec: | |
template: | |
metadata: | |
labels: | |
name: prometheus | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '9913' | |
spec: | |
dnsPolicy: ClusterFirst | |
restartPolicy: Always | |
terminationGracePeriodSeconds: 5 | |
serviceAccountName: prometheus | |
containers: | |
- name: prometheus | |
image: prom/prometheus:v2.9.0 | |
imagePullPolicy: "IfNotPresent" | |
args: | |
- --config.file=/etc/config/prometheus.yml | |
- --storage.tsdb.path=/prometheus-data | |
- --web.console.libraries=/etc/prometheus/console_libraries | |
- --web.console.templates=/etc/prometheus/consoles | |
- --web.enable-lifecycle | |
ports: | |
- containerPort: 9090 | |
protocol: TCP | |
resources: | |
requests: | |
memory: "256Mi" | |
limits: | |
memory: "1Gi" | |
readinessProbe: | |
httpGet: | |
path: /-/ready | |
port: 9090 | |
initialDelaySeconds: 30 | |
timeoutSeconds: 30 | |
livenessProbe: | |
httpGet: | |
path: /-/healthy | |
port: 9090 | |
initialDelaySeconds: 30 | |
timeoutSeconds: 30 | |
volumeMounts: | |
- name: config-volume | |
mountPath: /etc/config | |
- name: prometheus-data | |
mountPath: /prometheus-data | |
volumes: | |
- name: config-volume | |
configMap: | |
name: prometheus | |
- name: prometheus-data | |
emptyDir: {} | |
replicas: 1 | |
selector: | |
matchLabels: | |
name: prometheus | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: prometheus | |
labels: | |
name: prometheus | |
spec: | |
ports: | |
- name: "prometheus" | |
protocol: TCP | |
port: 9090 | |
targetPort: 9090 | |
selector: | |
name: prometheus | |
sessionAffinity: None | |
type: ClusterIP |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment