You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Performance data export pipeline

All performance data exported from NMIS runs through a pipeline from NMIS to MySQL database.

  1. nmis_performance_export.pl grabs data from different parts of NMIS (-node files, RRD's, etc) and creates one file per node per table.  One file per 5 minute period (per node pertable) is created, if you run the command more than once it will simply replace the existing files.  These files are placed in a directory corresponding to the 5 minute period.

  2. An opExport pull request is made on the MySQL server
  3. The NMIS server omkd find the oldest files that have been exported ('opexport_max_performance_datasets_per_load' => 3, of them), loads them and sends them back to the MySQL omkd.
  4. omkd on the MySQL server saves contents to MySQL
  5. If no errors occured omkd on MySQL sends a recepit back to omkd on NMIS saying all ok
  6. omk on NMIS logs response to opExport.log and removes succesfully inserted files 

Null data in performance tables

Given the definition of the performance data export pipeline, the logical place to start looking when null values appear is at step 1.  Find a file in /usr/local/omk/var/perf/<time_period>/<table>-<time_period>-node.nmis, view it in a text editor (like vi).

Is the null column name defined in the file?

  • No: If it is not defined it's likely that the model that the node uses either does not support the data or the export script hasn't been modified to add that information to the export (likely because it might not make logical sense to want to track that data for that model, eg, tracking cpu performance on your UPS)
  • Yes: this means the data that was grabbed was not defined.
    • Is thresholding turned on for this node? Check Nodes.nmis, search for the node name, look for 'threshold' => 'true'.  To count the number enabled and disabled run these commands:
      • grep -c "'threshold' => 'true'" /usr/local/nmis8/conf/Nodes.nmis 
      • grep -c "'threshold' => 'false'" /usr/local/nmis8/conf/Nodes.nmis 
    • Is NMIS running thresholding (either 'threshold_poll_cycle' => 'true', or with a separate nmis.pl type=threshold)?
    • Can you find the value in the var/<node_name>-node.nmis file for the node?
If the data is in the export file you can try these:
  • Run a pull or push of the data manually from the GUI (not a pull request, an actual pull) may give you info on any errors that are occurring.
  • Do the schemas match? You could try pushing the schemas to the server again and then run push/pull
  • If all this works successfully double check the logs on both the MySQL server (the omkd logs as well as the MySQL daemon logs)
  • No labels