Skip to content

Instantly share code, notes, and snippets.

@bborysenko
Last active January 3, 2018 11:02
Show Gist options
  • Select an option

  • Save bborysenko/c8bae6123704bc3c602c52afc9dbd084 to your computer and use it in GitHub Desktop.

Select an option

Save bborysenko/c8bae6123704bc3c602c52afc9dbd084 to your computer and use it in GitHub Desktop.
Playing with Prometheus
# Namespace
---
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
# ConfigMap
---
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
namespace: monitoring
data:
prometheus.yml: |
global:
scrape_interval: 15s
scrape_timeout: 5s
scrape_configs:
# - job_name: k8s-nodes
# kubernetes_sd_configs:
# - role: node
# - job_name: k8s-service
# kubernetes_sd_configs:
# - role: service
# - job_name: k8s-pod
# kubernetes_sd_configs:
# - role: pod
- job_name: k8s-endpoints
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
regex: ^(.+)(?::\d+);(\d+)$
replacement: $1:$2
target_label: __address__
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name]
action: replace
regex: (.+);(.+)
replacement: $1/$2
target_label: job
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- job_name: 'k8s-api'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
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: k8s-ingress
# kubernetes_sd_configs:
# - role: ingress
# Service
---
apiVersion: v1
kind: Service
metadata:
name: prometheus
namespace: monitoring
labels:
app: prometheus
component: core
spec:
type: NodePort
ports:
- name: api
port: 9090
selector:
app: prometheus
component: core
# Deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: prometheus
namespace: monitoring
labels:
app: prometheus
component: core
spec:
replicas: 1
template:
metadata:
labels:
app: prometheus
component: core
spec:
containers:
- name: prometheus
image: prom/prometheus:v2.0.0
ports:
- containerPort: 9090
volumeMounts:
- name: config-volume
mountPath: /etc/prometheus/
volumes:
- name: config-volume
configMap:
name: prometheus-config
---
apiVersion: v1
kind: Service
metadata:
name: redis
labels:
app: redis
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9121"
spec:
type: ClusterIP
selector:
app: redis
ports:
- name: redis
port: 6379
targetPort: 6379
- name: exporter
port: 9121
targetPort: 9121
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis
spec:
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: "redis:4.0-alpine"
ports:
- containerPort: 6379
- name: exporter
image: "oliver006/redis_exporter:v0.14"
ports:
- containerPort: 9121
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment