Skip to content

Instantly share code, notes, and snippets.

@florianschmidt1994
Created May 14, 2019 08:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save florianschmidt1994/dcb76cbd380b3b154e5e0b1a64824058 to your computer and use it in GitHub Desktop.
Save florianschmidt1994/dcb76cbd380b3b154e5e0b1a64824058 to your computer and use it in GitHub Desktop.
Setup Flink with Prometheus
---
apiVersion: v1
kind: Service
metadata:
name: flink-jobmanager
spec:
ports:
- name: rpc
port: 6123
- name: blob
port: 6124
- name: query
port: 6125
- name: ui
port: 8081
selector:
app: flink
component: jobmanager
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: flink-jobmanager
spec:
replicas: 1
template:
metadata:
labels:
app: flink
component: jobmanager
spec:
containers:
- name: jobmanager
image: FLINK_IMAGE_NAME_HERE
args:
- jobmanager
ports:
- containerPort: 6123
name: rpc
- containerPort: 6124
name: blob
- containerPort: 6125
name: query
- containerPort: 8081
name: ui
- containerPort: 9249
name: metrics
env:
- name: JOB_MANAGER_RPC_ADDRESS
value: flink-jobmanager
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: flink-taskmanager
spec:
replicas: 2
template:
metadata:
labels:
app: flink
component: taskmanager
spec:
containers:
- name: taskmanager
image: FLINK_IMAGE_NAME_HERE
args:
- taskmanager
ports:
- containerPort: 6121
name: data
- containerPort: 6122
name: rpc
- containerPort: 6125
name: query
- containerPort: 9249
name: metrics
env:
- name: JOB_MANAGER_RPC_ADDRESS
value: flink-jobmanager
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus
rules:
- apiGroups: [""] # "" indicates the core api group
resources:
- nodes
- services
- endpoints
- pods
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources:
- configmaps
verbs: ["get"]
- nonResourceURLs: ["/metrics"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: prometheus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: prometheus
subjects:
- kind: ServiceAccount
name: prometheus
namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus
namespace: default
---
apiVersion: v1
kind: Service
metadata:
name: prometheus
spec:
ports:
- name: ui
port: 9090
selector:
app: prometheus
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: prometheus
spec:
replicas: 1
template:
metadata:
labels:
app: prometheus
spec:
containers:
- name: prometheus
image: prom/prometheus
ports:
- containerPort: 9090
name: ui
volumeMounts:
- mountPath: '/etc/prometheus/'
name: config-volume
args: ["--log.level=debug", "--config.file=/etc/prometheus/prometheus.yml"]
volumes:
- configMap:
name: prometheus-config
name: config-volume
serviceAccountName: 'prometheus'
---
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
data:
prometheus.yml: |
global:
scrape_interval: 5s
scrape_configs:
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: 'pod'
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app]
regex: flink
action: keep
- source_labels: [__meta_kubernetes_pod_container_port_name]
regex: metrics
action: keep
- action: labelmap
regex: __meta_kubernetes_pod_(.+)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment