Functional Description of Supervision Server

Link to the main article: Supervision Server (SVS)

The following diagram gives an overview of the different SVS options and their effects:

At the bottom is the Dimension Supervisor (DS), which reacts to changes of elements in a specified dimension.

The SVS does not have its own GUI, but you can easily customize the corresponding PHP scripts to define how SVS reacts to different events.

Including Multiple Scripts into sep.inc.php

You can combine multiple scripts to benefit from the functionality of multiple examples. However, in PHP, the functions must have unique namespaces. If it encounters the same function or method multiple times, the preprocessor quits with an exception.

In addition, the Supervision Server had some predefined methods. All these methods are listed and required to have the examples startable.

To get this running, you can copy the content of the desired methods in one single file.

For example, the drillthrough functionality from sep.inc.drill_through.php and the active directory connection from sep.inc.adldap_sample.php can be used in the Supervision Server. To do this, you can copy the content from the drillthrough method in sep.inc.drill_through.php to sep.inc.adldap_sample.php, like in the example below:

The drillthrough function in sep.inc.adldap_sample.php looks like in the example below:

Copy
public function OnDrillThroughExt( $database, $cube, $mode, $arg, $sid ) { // string
 sep_log("<< USING SAMPLE SCRIPT PLEASE ADJUST TO MATCH YOUR CONFIGURATION >>");
 sep_log("<< OnDrillThrough >>");
 return "not implemented;\r\n";
 }

You can replace it with the content from sep.inc.drill_through.php, like in the simplified example below:

Copy
public function OnDrillThroughExt( $database, $cubename, $mode, $arg, $sid ) { // string
  sep_log("<< USING SAMPLE SCRIPT PLEASE ADJUST TO MATCH YOUR CONFIGURATION >>;");
 palo_ping('SupervisionServer');
 //  ...
 }
private $element_list_cache = null;
private function DrillThroughElementHelper($database, $cubename, $arg)
 {
  if($this-&gt;element_list_cache == null)
  {
   $dim_list = palo_cube_list_dimensions('SupervisionServer/'.$database, $cubename);
   $ele_list = str_getcsv($arg, ',', '"');
   // ...
  }
}
private function DrillThroughETL($database, $cubename, $mode, $arg, $sid)
 {
  sep_log("<< DrillThroughETL >>");
 
 // Dimensions
  $dim_list = palo_cube_list_dimensions('SupervisionServer/'.$database, $cubename);
  $ele_list = str_getcsv($arg, ',', '"');
   //  ...
}
private function DrillThroughCube($database, $cubename, $mode, $arg)
 {
  sep_log("<< DrillThroughCube >>");
  // Dimensions
  $dim_list = palo_cube_list_dimensions('SupervisionServer/'.$database, $cubename);
  $ele_list = str_getcsv($arg, ',', '"');
  $area = array();
  $maxBaseElements = 100000;
  $numBaseElements = 0;
  //  ...
 }

You must make sure that there are no functions or methods called the same way.

Note: It is recommended that you copy that into custom scripts and use a different name for the file.

Updated June 5, 2023