Skip to content

m-lab/disco

Repository files navigation

Coverage Status

DISCOv2

DISCOv2 is a reimplementation of the DISCO parts of collectd-mlab, written in Go. It differs a bit from DISCO, but fundamentally they are the same in that they both probe a switch for various traffic metrics every 10s and then periodically write the results to a file in JSON format. Pusher will upload those files to GCS where they will be processed and parsed into BigQuery.

DISCOv2 supports the following flags:

  • --prometheusx.listen-address: the IP and TCP port to listen to for Prometheus metricis requests.
  • --metrics-file: the path to a YAML-formatted file defining which metrics to scrape. See file metrics.yaml in this repo for an example.
  • --write-interval: the interval at which collected metrics are converted to JSON and written to disk.
  • --target: the name or IP of the switch to collect metrics from.

DISCOv2 requires that an environment variable named DISCO_COMMUNITY is set and contains the SNMP community sting to use when polling the switch.

Unlike DISCO, in addition to collecting switch metrics every 10s and writing out data files, DISCOv2 includes a Prometheus exporter which will expose the metrics it has collected. This makes DISCOv2 something like the snmp_exporter, but far less general purpose.

Configuration

The file metrics.yaml.sample is, as the name implies, nothing more than a sample of how the configuration file should be formatted. The actual configuration file for DISCOv2 (as it runs in the M-Lab kubernetes platform cluster) can be found in the k8s-support repository.