Skip to content

Instantly share code, notes, and snippets.

@gosharplite
Last active March 15, 2017 06:21
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 gosharplite/9634e8c78c536f13cd8ab3cb1ad1188a to your computer and use it in GitHub Desktop.
Save gosharplite/9634e8c78c536f13cd8ab3cb1ad1188a to your computer and use it in GitHub Desktop.
owen-duck + Prometheus + Grafana

UI links

Setup your service to be monitored by prometheus.

owen-duck has been created in the tyd namespace.

Two files are used. duck-rc.yaml, duck-svc.json.

$ curl http://10.128.112.27:32758

github duck

Prometheus has been created in the tyd namespace.

Three files are used. servicemonitor.yaml, prometheus.yaml, prometheus-svc.yaml.

$ ./kubectl get prometheus

$ ./kubectl get servicemonitor

$ ./kubectl get svc | grep prometheus

$ ./kubectl get po | grep prometheus-owen

Grafana has been created in the default namespace.

helm is used to deploy owen-duck-grafana.

$ helm install --name owen-duck -f config.yaml stable/grafana

config.yaml

server:
  adminPassword: admin
  persistentVolume:
    enabled: false
  serviceType: NodePort
apiVersion: v1
kind: ReplicationController
metadata:
name: owen-duck-rc
labels:
name: owen-duck-rc
spec:
replicas: 3
selector:
name: owen-duck
template:
metadata:
labels:
name: owen-duck
spec:
containers:
- name: duck
image: gosharplite/duck:v16
command:
- /duck
- -delay
- "0"
ports:
- containerPort: 8080
{
"kind":"Service",
"apiVersion":"v1",
"metadata":{
"name":"owen-duck-svc",
"labels":{
"name":"owen-duck-svc"
},
"annotations":{
"prometheus.io/scrape": "true",
"prometheus.io/port": "8080"
}
},
"spec":{
"selector":{
"name":"owen-duck"
},
"type": "NodePort",
"ports": [
{
"name": "http",
"port": 8080
}
]
}
}
apiVersion: v1
kind: Service
metadata:
name: prometheus-owen
spec:
type: NodePort
ports:
- name: web
port: 9090
protocol: TCP
targetPort: web
selector:
prometheus: owen
apiVersion: "monitoring.coreos.com/v1alpha1"
kind: "Prometheus"
metadata:
name: "owen"
labels:
prometheus: "owen"
spec:
replicas: 1
version: v1.3.0
serviceMonitorSelector:
matchExpressions:
- {key: app, operator: In, values: [owen]}
resources:
requests:
memory: 400Mi
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: owen
labels:
app: owen
spec:
selector:
matchLabels:
name: owen-duck-svc
endpoints:
- port: http
interval: 3s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment