In our October online meetup we asked three of our engineers to demonstrate their favorite monitoring tools for containers, and demonstrate how to deploy and utilize them. They provided an in-depth overview of Sysdig, Datadog and Prometheus and try to help you determine which tool is best for your workload, and demonstrated:
- Deploying container monitoring tools from the Rancher catalog.
- Key differences between container and server monitoring.
- How Sysdig, Datadog and Prometheus compare with one another.
Please register for the next Rancher online meetup: http://rancher.com/meetup
16. What is Datadog?
Datadog is a monitoring service for dynamic cloud
infrastructure and large-scale applications
Signup for a free trial: https://www.datadoghq.com/datadog-signup/
17. Deploying the agent
Traditional Installation
Datadog agent runs next to the Docker engine
Docker-ized Datadog Agent
Agent is deployed in a container
The Agent is responsible for sending native host and container-specific
metrics, like number of containers, load, memory, disk usage, and latency.
For more information: http://docs.datadoghq.com/integrations/docker/
18. Service discovery
- Useful when using container orchestration
tools like Kubernetes or ECS
- Allows users to continuously monitor
Dockerized applications without interruption
as they move across containers and hosts
How it works:
1. You define configuration templates for
images you want to monitor
2. The Datadog Agent listens to Docker
events and spots when containers are
created, destroyed, started or stopped
3. The Agent loads the configuration template
for the corresponding image, and
automatically re-set up its checks
For more information:
http://docs.datadoghq.com/guides/servicediscovery/
Custom Metrics
- Use the Datadog Agent with DogStatsD for
sending in custom metrics instrumented in
containerized applications
- DogstatsD is the Datadog extension of StatsD,
which adds metric tagging.
For more information:
http://docs.datadoghq.com/guides/dogstatsd/
21. FOR
Open Source
API
Follows UNIX
philosophy
Easy to instrument
your code
Fast & powerful
Service Discovery
Capacity Planning &
Reporting
Application Auto-
Discovery
Not Software as a
service
HOW DOES IT STACK-UP?
BAKE OFF!
AGAINST
22. FOR
Open Source
API
Follows UNIX
philosophy
Easy to instrument
your code
Fast & powerful
Service Discovery
Capacity Planning &
Reporting
Application Auto-
Discovery
Not Software as a
service
HOW DOES IT STACK-UP?
BAKE OFF!
AGAINST
23. FOR MORE INFO
Open Source
API
Follows UNIX
philosophy
Easy to instrument
your code
Fast & powerful
Service Discovery
Capacity Planning &
Reporting
Application Auto-
Discovery
Not Software as a
service
prometheus.io
HOW DOES IT STACK-UP?
BAKE OFF!
AGAINST
github.com/prometheus/prometheus
robustperception.io
cncf.io
infinityworks.com
engineering.infinityworks.com
github.com/infinityworksltd
Signup for a free trial: https://www.datadoghq.com/datadog-signup/
During Jenkins Build- make run-Jenkins 1m 10
This could be any CI, so longs as it can be run in a container and everyone can build in a consistent way then it doesn’t matter what its doing.
As part of this build it could be executing unit tests etc
I’ve mapped through the drive but you could just as easily have it git pull into the container, my instance monitors the remote git repo and then builds it from the mapped drive. There are pros and cons to both, I like this as I can make changes and run a manual build without needing to check in all the time.
Jenkins git build – 5 mins
Running multiple hosts locally causes pain as it means you need a repository or a means to get the built containers between the hosts. Overlay network also doesn’t currently work in boot2docker
Intro
During Jenkins Build- make run-Jenkins 1m 10
This could be any CI, so longs as it can be run in a container and everyone can build in a consistent way then it doesn’t matter what its doing.
As part of this build it could be executing unit tests etc
I’ve mapped through the drive but you could just as easily have it git pull into the container, my instance monitors the remote git repo and then builds it from the mapped drive. There are pros and cons to both, I like this as I can make changes and run a manual build without needing to check in all the time.
Jenkins git build – 5 mins
Running multiple hosts locally causes pain as it means you need a repository or a means to get the built containers between the hosts. Overlay network also doesn’t currently work in boot2docker