We are running Sock Shop application open sourced by WeaveWorks to test 2 popular monitoring solutions - Instana and Sysdig.

Both these tools claim that they can start showing metrics without any need to instrument application code. The code in Sock Shop application doesn’t have any instrumentation in built. So, this would give us a good understanding of how these products compare when there is no in-built instrumentation.

Key Metrics to monitor

The key metrics to monitor for any resource can be derived from the RED method. This philosophy basically entails the following:

For every resource, monitor:

  • Rate (the number of requests per second)
  • Errors (the number of those requests that are failing)
  • Duration (the amount of time those requests take)

How many services are the products able to discover and how accurate are these?

Kubernetes Integration

Instana has better integration with Kubernetes. Immediately checks all kubernetes base info like services etc - and shows pod load etc.

What are the different features which each product is focusing on

Instana has better integration with Kubernetes. Immediately checks all Kubernetes base info. Sysdig is not able to find services from Kubernetes services name

Instana detects all Kubernetes Clusters and gives a clean dashboard
Sysdig's Dashboard is more technical with not much focus on UI

Automatic Service Detection

Instana

The Services dashboard gives important metrics like inbound calls, error rates, mean latency, etc. out of the box.

Instana's Service Dashboard

Sysdig

Sysdig's Service dashboard points to each service

List of services discovered

The architecture of Sock Shop application looks like as shown below:

Sock Shop Architecture

Instana is only able to detect the following services : queue-master, shipping, orders and carts.

Instana detects only a few services

Sysdig detects almost all the services which are part of the architecture. This they are able to do without putting any load to Sock Shop application - and hence are not dependent on API calls.

Sysdig detects almost all of the services

Sysdig provides very granular way of how to see metrics. It is called Groupings.

The underlying technology

Instana seems to be using Rest API based tracing while Sysdig directly listens through ePBF. Instana is only able to detect services when we add load to a services and the APIs are actually called. Sysdig is able to discover services based on internal calls also.