StackState-Go Metro Integration


The TCP RTT check reports on roundtrip times between the host the agent is running on and any host it is communicating with. This check is passive and will only report RTT times for packets being sent and received from outside the check. The check itself will not send any packets.

This check is only shipped in the 64-bit DEB and RPM StackState Agent packages.



The TCP RTT check—also known as go-metro is packaged with the Agent, but requires additional system libraries. The check uses timestamps provided by the PCAP library to compute the time between any outgoing packet and the corresponding TCP acknowledgement. As such, PCAP must be installed and configured.

Debian-based systems should use one of the following:

$ sudo apt-get install libcap
$ sudo apt-get install libcap2-bin

Redhat-based systems should use one of these:

$ sudo yum install libcap
$ sudo yum install compat-libcap1

Finally, configure PCAP:

$ sudo setcap cap_net_raw+ep /opt/stackstate-agent/bin/go-metro


Edit the go-metro.yaml file in your agent’s conf.d directory. The following is an example file that will show the TCP RTT times for and

  snaplen: 512
  idle_ttl: 300
  exp_ttl: 60
  statsd_port: 8125
  log_to_file: true
  log_level: info

  - interface: eth0
      - env:prod


To validate that the check is running correctly, you should see metrics showing in the StackState interface. Also, if you run sudo /etc/init.d/stackstate-agent status, you should see something similar to the following:

● stackstate-agent.service - "StackState Agent"
   Loaded: loaded (/lib/...stackstate-agent.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-03-31 20:35:27 UTC; 42min ago
  Process: 10016 ExecStop=/opt/.../supervisorctl -c /etc/sts-....conf shutdown (code=exited, status=0/SUCCESS)
  Process: 10021 ExecStart=/opt/.../ (code=exited, status=0/SUCCESS)
 Main PID: 10025 (supervisord)
   CGroup: /system.slice/stackstate-agent.service
           ├─10025 /opt/stackstate-...python /opt/stackstate-agent/bin/supervisord -c /etc/sts-agent/supervisor.conf
           ├─10043 /opt/stackstate-...python /opt/stackstate-agent/agent/ --use-local-forwarder
           ├─10044 /opt/stackstate-agent/bin/go-metro -cfg=/etc/sts-agent/conf.d/go-metro.yaml
           ├─10046 /opt/stackstate-.../python /opt/stackstate-agent/agent/
           └─10047 /opt/stackstate-.../python /opt/stackstate-agent/agent/ foreground --use-local-forwarder

If the TCP RTT check has started you should see something similar to the go-metro line above.

This is a passive check, so unless there are packets actively being sent to the hosts mentioned in the yaml file, the metrics will not be reported.


The TCP RTT check is compatible with Linux platforms.

Data Collected

The TCP round trip time. Available since Agent v5.7.0.
shown as millisecond
The average TCP round trip time as typically computed by the TCP stack. Available since Agent v5.7.0.
shown as millisecond
The TCP round trip time jitter. Available since Agent v5.7.0.
shown as millisecond


The Go-metro check does not include any event at this time.

Service Checks

The Go-metro check does not include any service check at this time.