Until recently, applications ran on a handful of carefully curated technologies for years to come, deployments were static and teams siloed. In the microservices age, teams are cross-functional, pick the technologies they consider to work best for them, and are held accountable for what they produce. Application deployments are fine-grained, frequent, scalable and fully automated. What a shift and what a challenge for monitoring such environments! In this presentation, you'll learn how to obtain insights from your OpenShift environment by exploring various open-source monitoring, logging, and tracing technologies, including Elasticsearch, Fluentd, Hawkular, Heapster, Jolokia, Kibana, OpenTracing, Prometheus and ZipKin.
7. Microservice A Microservice B Microservice C
Runtime Environment Runtime Environment Runtime Environment
-3-2
Data
Store
3
Data
Store
6
Data
Store
5 9
8. Microservice A
Load Balancing
Microservice B
Load Balancing
Microservice C
Runtime Environment Runtime Environment Runtime Environment
Load Balancing
Data
Store
Data
Store
Data
Store
3 6
9. Microservice A
Load Balancing
Microservice B
Load Balancing
Microservice C
Runtime Environment Runtime Environment Runtime Environment
Load Balancing
Data
Store
Data
Store
Data
Store
3 6
10. Microservice A
Load Balancing
Microservice B
Load Balancing
Microservice C
Runtime Environment Runtime Environment Runtime Environment
Load Balancing
Data
Store
Data
Store
Data
Store
Messaging System
3 6
11. Microservice A
Load Balancing
Microservice B
Load Balancing
Microservice C
Runtime Environment Runtime Environment Runtime Environment
Load Balancing
Messaging System
API Gateways
Data
Store
Data
Store
Data
Store
3 6
12. Microservice A
Load Balancing
Microservice B
Load Balancing
Microservice C
Runtime Environment Runtime Environment Runtime Environment
Load Balancing
Messaging System
API Gateways
Data
Store
Data
Store
Data
Store
languages
application servers,
container runtimes,…
load balancing
discovery & routing
security
messaging
storage
3 6
18. Monitoring
container health checks with OpenShift Liveness Probes
What?
● a liveness probe periodically checks if a container is able to handle requests
● when a condition has not been met within a given timeout, the probe fails
● if a probe fails, the container is killed and subjected to its restart policy
19. Monitoring
container health checks with OpenShift Liveness Probes
How?
…
1 livenessProbe:
2 httpGet:
3 path: /health
4 port: 8080
5 initialDelaySeconds: 15
6 timeoutSeconds: 1
…
set in spec.containers.livenessProbe of Pod config
58. $ mv $JOLOKIA_HOME/agents/jolokia.war $TOMCAT_HOME/webapps
$ $TOMCAT_HOME/bin/catalina.sh start
Jolokia
JMX on Capsaicin installs a Jolokia WAR agent into Apache Tomcat
80. a standard API for reporting distributed traces
with various client libraries
81. OpenTracing
A vendor-neutral open standard for distributed tracing
The problem?
● instrumentation is challenging: tracing context must propagate within and between processes
● unreasonable to ask all vendor and FOSS software to be intrumented by a single tracing vendor
The solution?
● allow developers to instrument their own code using OpenTracing client libraries
● have the application maintainer choose the tracing technology via configuration change