Application Level Monitoring

Application Level Monitoring

Many apps ship with integrated exporters

Many FOSS services have an exporter

Collection works just like for system services

If nothing available, use generic exporters


Probing of endpoints over HTTP, HTTPS, DNS, TCP, ICMP and gRPC


Scraping of remote JSON by JSONPath

Alternative: JSON API datasource

Application on the network

Different datacenters or restrictive firewalls

Check whether scraping is possible

Otherwise push metrics to gateway:


Helps with firewall traversal

Accepts metrics from apps or agents

Caveat: Does not remove orphaned metrics

Pod Quality-of-Service

Kubernetes will try really hard to protect pods

Pod eviction

When resources on a node are depleted:

How pods are “chosen”

Pods have a quality-of-service based on resource requests and limits

Scheduling uses resource requests to find suitable node

Pod Quality-of-Service

Check QoS

kubectl get pods --all-namespaces --output=json \
| jq --raw-output '.items[] | "\( \(.status.qosClass)"'