The Analysis Phase

Adding a new probe to the IEPM-BW test is "complex" because one must understand all the aspects of the probe:

  • What part of the result is relevant
  • What kind of table structure is needed to store the results. Can one that is defined already be used
    or does it need a custom table?
  • What are the characteristics of it performance and how can it be controlled - Does it hang - if so,
    how and how can it be detected and remedied? Does it require a responder on the target? If so how does
    it work and what are its performance characteristics (does it hang..how to fix it)?
  • How can one get ahold of the results? Can one direct the output to a file, or does one need to "capture"
    the output and write it out to a file.
  • What kind of info does the probe return to you? Does it return RTT? BW? Packet loss?  Etc.? How does one
    want to display the probe results? Time series (if so of what), scatterplots? Plot if against other specific data?
  • Is this a probe that can be run via a daemon asynchronously, or does it need to be synchronized to not
    run at the same time as certain other probes?

Custom Code to Implement the Probe

Each probe requires customized configuration and code.

  • The probe configuration information (parameters) is put in the TOOLSPECS table. Each probe is different,
    and the configuration for each node it is targeted to can be different (window sizes, streams, duration, run interval)
  • A "do_test" script must be written. This is the script that actually performs the test. It can be modeled
    after the existing ones, but needs customization depending on the probe characteristics.
  • A "load-test-data" script must be written to pick out the relevant/interesting data returned from the probe
    and store it in the data base.
  • The specs for the desired plots must be entered in the plotspecs (miscellaneous plots), datatoanalyze (master
    results page), and toolspecs (individual probe plots)  tables once one knows what they are. This is not difficult,
    but one must decide what one wants.
  • The master results page must be modified to include the probe in it (controlled by "datatoanalyse" for each probe). This can be done by copying and editing the display code for any of the other probes.
  • Possibly a fetch-test-data script must be written, unless the probe data fits the pattern of one that is already written. I have one data table "BWDATA" which hopefully is general enough now to hold the data from new probes in it. Then 'fetch-bw-data' can be used for fetching the data.

Code Which Must be Modified to Handle New Probes

 The following scripts/files must be modified to include code for any new probes. Usually one can just copy, insert and modify the code for the other probes.

  • 'create-analysis-data'
  • 'create-history' and the scripts it calls
  • 'fetch-binned-bwdata' if the data is in the BWDATA table
  • 'install-iepmtools' - and if the new probe has server/client code, it should be put in the 'iepmtools' directory.
  • 'create-tool-plots'
  • 'make-bw-html' and the script snipit it calls in the directory 'site-customization' called 'top-of-page.pl'
  • 'make-data-collection'
  • 'scripts.list'
  • dist.scripts.list
  • 'analyze-for-alerts' in the directory 'alerts'

As usual, the devil is in the analysis. It is extremely important as one does not want to hang or crash
the system, and if the probe has certain problems characteristic of it, one MUST take care of them and recognize them!

  • No labels