Prometheus vs WeaveScope vs DataDog vs Sysdig monitoring tools compared
With the increasing adoption of containers and microservices in the enterprises, monitoring utilities now have to handle more services and server instances than ever before. Although infrastructure landscape has changed, operations teams still need to monitor the same metrics on CPU, RAM, File System, Network utilization, and the availability of service endpoints.
We have already looked at the list of BEST Kubernetes monitoring tools.In this post, we compare some of the best monitoring tools available for Kubernetes/Dockers.
Datadog allows you to collect metrics, events, and service states from Kubernetes service in real-time. You can then, visualize and correlate the data with beautiful graphs, and set flexible alerting conditions without running any storage or monitoring infrastructure yourself.
- Datadog seamlessly aggregates metrics and events across the full DevOps stack
- Ability to monitor, troubleshoot, and optimize application performance
- Option to search, filter, and analyze logs for troubleshooting
- Datadog offers real-time dashboards, high-resolution metrics, and events for manipulation and graphing
- Datadog alerts on any metric, for a single host or for an entire cluster. Get notifications via e-mail, PagerDuty, Slack, and other channels
- Datadog includes full API access to bring observability to all your apps and infrastructure
Weave Scope is a visualization and monitoring tool for Docker and Kubernetes. For Microservices-based architecture, Weave scope would be useful in visualizing network bottlenecks, troubleshooting CPU consumption and troubleshooting memory leaks. It provides a top-down view into your app as well as your entire infrastructure and allows you to diagnose any problems with your distributed containerized app, in real-time, as it is deployed to a cloud provider.
- Drill down Views: For an app which is running in Kubernetes, Scope displays Pods, Replica Sets, Deployments, and related Services on clusters. So for containerized microservices running in the cloud, you can view Processes, Containers, Orchestrators, and Hosts.
- Real-time Contextual metrics: By clicking on a node you can get a detailed panel with additional metrics on the node. From the detailed panel, you can drill down on processes inside your container to the hosts that your containers run on.
- Troubleshoot / Manage Containers: On clicking of a container, pod or host, you can view the controls pane from there you can pause, restart, stop and delete without having to leave the Scope browser window.If further troubleshooting is required, terminal windows can be launched from any container or host so that you can interact with your app and run any UNIX command to diagnose issues.
- Search: Weave supports simple operands so that for example, you can find processes consuming a certain amount of memory or nodes using too much CPU.
- Filtering options: Nodes can be filtered by CPU and Memory usage so that you can easily find containers using the most resources. If you are running an app in Kubernetes then your app can be filtered by namespace and by container state whether running or stopped or contained and uncontained.
- Graphic / Table Mode: Views can be presented in Graphic as well as Table Mode. Graphical mode is more useful in cases where you want to have a quick visual overview of your app.Table mode is for viewing data like resources being consumed by processes, containers, and hosts, etc.,
Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Prometheus primarily supports a pull-based HTTP model but it also supports alerts, it would be the right fit to be part of your operational toolset. Prometheus works well for recording any purely numeric time series. It fits both machine-centric monitoring as well as monitoring of highly dynamic service-oriented architectures.
- Multi-dimensional data model with time series data identified by metric name and key/value pairs
- Flexible query language to leverage this dimensionality
- No reliance on distributed storage; single server nodes are autonomous
- Time series collection happens via a pull model over HTTP
- Pushing time series is supported via an intermediary gateway
- Targets are discovered via service discovery or static configuration
- Multiple modes of graphing and dashboarding (ex.Grafana) support
Sysdig Monitor is a monitoring, troubleshooting, and alerting suite offering deep, process-level visibility into dynamic, distributed production environments. Sysdig Monitor captures, correlates, and visualizes full-stack data, and provides dashboards for monitoring.
- Deep container metrics, rich Kubernetes & Docker monitoring, and enterprise-grade Prometheus monitoring for better application visibility, alerting, and troubleshooting
- Collect, correlate and query Prometheus metrics with enterprise-class data management, scale and support.
- See and query response times, application performance metrics, Prometheus and custom metrics, container, server and network metrics, with orchestrator metrics and events
- Group data by host and container, or use metadata from Docker, Kubernetes, Mesos, and AWS to view everything by microservice. Drill down into pre-built views to quickly see important metrics.
- Build full-stack dashboards to visualize your applications, microservices, containers, networks, Prometheus metrics and more.
Comparison of Prometheus vs WeaveScope vs DataDog vs Sysdig monitoring tools
|Features||Prometheus||Weave Scope||Data Dog||Sysdig Monitor|
|License||Open source||Open Source/ Commercial||Commercial||Open Source / Commercial|
|Deployment Model||Container,Local Install||Standalone / Cloud Service or local install with local agent||Cloud Service with local agent||Cloud Service or local install with local agent|
|Pricing Model||FREE||Free or monthly per host||Monthly,per host||Free or monthly per host|
|Purpose||Metrics collection||Instrumentation + metrics Collection||Metrics collection||Instrumentation|
|Datastore||Time-series, Stores in-memory and on disk. It can also be integrated with external storage||Weave Cortex(based on Prometheus) – time series DB||Options for In-memory and on disk. It can also be integrated with external storage or tools like Influx DB||Elastic Search Time Series Database|
|Data Retention & History||History not supported out-ofbox||Supported||Supported||Supported|
|Events||Not supported||Supported – Process, host drill down||Supported||Uses Elastic search to store events data.
Uses Syscalls to capture events
|Capture Logs||Not supported||Supported||Supported||Supported|
|Host agents||Exporters available (Node exporter,kube-statemetrics,etc)||Probe used to gather information about host||Datadog agents that collect metrics via DogStatsD.||Sysdig agent, StatsD,JMX,|
|Scraping mechanism||Push , Pull||Pull||Pull||Pull|
|Query Language||PromQL||PromQL||Available||Uses PromQL + GUI for analysis|
|Visualization||Rich dashboards with Grafana Expression browser||Central dashboard with topology mapping (Scope App)||Dashboards with real time performance metrics||Sysdig GUI|
|Service Discovery||Supported with modules||Supported||Supported||Supported|
|Anomaly detection||Not supported||Not available||Not available||Supported|
|Topology Mapping||Not available||Available Scope app generates reports for visualization||Available via Host Map Feature||Topology Map available|
|Contextual, Deep Linking & Logging||Not available||Available
[process I metric drilldown]
|Native Web UI||Yes,available||Yes,available||Yes,available||Yes,available|
|Alerting & Notification||Prometheus Alertmanager||Standalone / Hosted Alertmanager is available as Weave Cloud||Built-in GUI||Built-In GUI|
|API,extensibility||Available via Integrations||Available via Integrations||Available via Integrations||Available via Integrations|
Key capabilities to watch out for
- Aggregate metrics, events and labels from containers
- Support for any deployment style (Local, hosted, cloud or hybrid) and ability to collect and report following Host / Container metrics
- Resource utilization (for each container can consume)
- CPU Usage
- Node CPU capacity
- Memory Usage
- Node Memory capacity
- Filesystem Usage
- Disk I/O (per node)
- Network Throughput
- Resource utilization (for each container can consume)
- Application metrics – Support for monitoring applications running on Kubernetes/Docker containers
Like this post? Don’t forget to share it!