code: def _parse_linux_cx_state(self, lines, tcp_states, state_col, protocol=None, ip_version=None):
          
          metrics = {}
          for _, val in iteritems(self.cx_state_gauge):
              metrics[val] = 0
          for l in lines:
              cols = l.split()
              if cols[0].startswith('tcp') or protocol == 'tcp':
                  proto = "tcp{0}".format(ip_version) if ip_version else ("tcp4", "tcp6")[cols[0] == "tcp6"]
                  if cols[state_col] in tcp_states:
                      metric = self.cx_state_gauge[proto, tcp_states[cols[state_col]]]
                      metrics[metric] += 1
              elif cols[0].startswith('udp') or protocol == 'udp':
                  proto = "udp{0}".format(ip_version) if ip_version else ("udp4", "udp6")[cols[0] == "udp6"]
                  metric = self.cx_state_gauge[proto, 'connections']
                  metrics[metric] += 1
  
          return metrics
docs: Parse the output of the command that retrieves the connection state (either `ss` or `netstat`)
          Returns a dict metric_name -> value