perfsonar / docs

Documentation of the perfSONAR project
4 stars 7 forks source link

Document how to group multiple addresses on same graph in maddash #209

Closed arlake228 closed 1 month ago

arlake228 commented 4 years ago

We should document this:

Hi George,

It’s kinda complicated due to the way things need to get passed through to the various pieces but we actually do something like this with the ESnet mesh. Example of graphs between two multi-homed hosts using different interfaces for throughput and latency: http://ps-dashboard.es.net/maddash-webui/details.cgi?uri=/maddash/grids/ESnet+-+100G+ESnet+Hub+to+100G+ESnet+Hub+Throughput+Testing+-+Throughput/albq-pt1.es.net/chic-pt1.es.net/Throughput

There are two steps essentially:

1. The first step is to set a parameter called "display-set” (property name doesn’t actually matter as long as you are consistent) to the same value for all the addresses you want graphed together. The value won’t be displayed anywhere so also doesn’t matter as long as the addresses you want to group have the same value. See example below with the addresses you shared:

addresses": {

"enpl-ow2-1g.eos.nasa.gov": {

  "_meta": {

    "display-name": "enpl-ps2",
    "display-set": "enpl-ps2"
  },

  "address": "enpl-ow2-1g.eos.nasa.gov",

  "host": "enpl-ps2"

},

"enpl-pt2-10g.eos.nasa.gov": {

  "_meta": {

    "display-name": "enpl-ps2",
    "display-set": "enpl-ps2"

  },

  "address": "enpl-pt2-10g.eos.nasa.gov",

  "lead-bind-address": "enpl-pt2-10g.eos.nasa.gov",

  "host": "enpl-ps2"

}

}

2. The second step is to update your tasks to have a special “reference" block (this is an opaque set of parameter that get passed to pscheduler and ultimately Esmond that the graphs can query later to figure out what you want to display together). Example:

"tasks" : { "100G_ESnet_Hub_to_100G_ESnet_Hub_Throughput_Testing" : { "_meta" : { "display-name" : "100G ESnet Hub to 100G ESnet Hub Throughput Testing" }, "reference": { "display-set-source": "{% jq .addresses[0]._meta.\"display-set\" %}", "display-set-dest": "{% jq .addresses[1]._meta.\"display-set\" %}" }, "group" : "group_2", "schedule" : "schedule_0", "test" : "throughput_1", "tools" : [ "iperf3" ] }, … }

Psconfig will need time to regenerate your tests so it is tagging tests properly and maddash is looking for the parameters, but the steps above should be what you need. I am not sure we have good examples of this in the docs so probably needs to be added.

It’s pretty huge, but you can see the ESnet config file here for lots of examples: https://github.com/esnet/esnet-perfsonar-mesh/blob/master/psconfig/esnet-psconfig.json.

Thanks, Andy

On July 9, 2020 at 4:32:00 PM, Uhl, George D. (GSFC-423.0)[Arctic Slope Technical Services, Inc.] (perfsonar-user@internet2.edu) wrote:

Hi,

I asked this a long time ago but I’ve never found the glue to make it work. I have multi-homed servers each with one interface dedicated to throughput, trace, ping tests and another interface dedicated to owamp tests. Each interface has its own IPv4 address and FQDN. I define tests using several psconfig json templates which the psconfig-maddash-agent reads to generate my maddash dashboard. Currently, psconfig-maddash-agent treats the “address” JSON object entries of the psconfig json templates as separate entities thus creating a single graph plot for throughput tests and a separate dual plot for latency/loss tests.

I had hoped that in the “address” section of the psconfig json template, I could telegraph to psconfig-maddash-agent that I want to combine two separate “address” entries and their corresponding test graphs into a single plot by assigning the same hosts identifier in the “hosts” field inside each “address” entry. For example:

"addresses": {

"enpl-ow2-1g.eos.nasa.gov": {

  "_meta": {

    "display-name": "enpl-ps2"

  },

  "address": "enpl-ow2-1g.eos.nasa.gov",

  "host": "enpl-ps2"

},

"enpl-pt2-10g.eos.nasa.gov": {

  "_meta": {

    "display-name": "enpl-ps2"

  },

  "address": "enpl-pt2-10g.eos.nasa.gov",

  "lead-bind-address": "enpl-pt2-10g.eos.nasa.gov",

  "host": "enpl-ps2"

}

}

...

“hosts”: {

"enpl-ps2": {

  "_meta": {

    "display-name": "enpl-ps2",

    "organization-display-name": "NASA GSFC"

  }

}

}

However, the “host” field was never the glue that I could use to combine throughput, latency, and loss graphs into a single plot on the dashboard. I’ve not been able to find guidance within the perfsonar docs to make this happen. It’s not a show-stopper and I’m getting the data I need, but it is annoying.

Any help is appreciated.

Thanks,

George

szymontrocha commented 1 month ago

Maddash is no longer there