Current objects

The following is a list of the current objects base for Inputs, Outputs and Validations. Do note that some are provided in different GitHub repositories (the main repository for nAttrMon is openaf/nattrmon):

Inputs

Type Name Repository Category
Input nInput_AFPing openaf/nattrmon-configs RAID
Input nInput_BPMDebugChecks openaf/nattrmon-configs RAID
Input nInput_CBPMDebugChecks openaf/nattrmon-configs RAID
Input nInput_CBPMSemaphores openaf/nattrmon-configs RAID
Input nInput_DB openaf/nattrmon DB
Input nInput_EndPoints openaf/nattrmon OS
Input nInput_JMX openaf/nattrmon JMX
Input nInput_FMSRuleStatus openaf/nattrmon-configs RAID
Input nInput_Filesystem openaf/nattrmon OS
Input nInput_FilesystemCount openaf/nattrmon OS
Input nInput_HTTPJson openaf/nattrmon OS
Input nInput_IMAbnormalLoadings openaf/nattrmon-configs RAID
Input nInput_IMLoadingsProgress openaf/nattrmon-configs RAID
Input nInput_IMMemory openaf/nattrmon-configs RAID
Input nInput_Kube_Events openaf/nattrmon Kubernetes
Input nInput_LogErrorAgg openaf/nattrmon OS
Input nInput_OSInfo openaf/nattrmon OS
Input nInput_RAIDMemory openaf/nattrmon-configs RAID
Input nInput_RunningFlows openaf/nattrmon-configs RAID
Input nInput_Semaphores openaf/nattrmon-configs RAID
Input nInput_Sessions openaf/nattrmon-configs RAID
Input nInput_Shell openaf/nattrmon OS
Input nInput_Channel openaf/nattrmon Input Channel
Input nInput_RemoteChannel openaf/nattrmon Input Channel
Input nInput_Schedulers openaf/nattrmon-configs RAID
Input nInput_CompareTimes openaf/nattrmon OS
Input nInput_DMPerformance openaf/nattrmon-configs RAID
Input nInput_EndPoints openaf/nattrmon OS

Outputs

Type Name Repository Category
Output nOutput_AWSCloudWatch openaf/nattrmon Output AWSCloudWatch
Output nOutput_DSV openaf/nattrmon Output DSV
Output nOutput_EmailWarnings openaf/nattrmon Output Warning
Output nOutput_H2 openaf/nattrmon Output History
Output nOutput_HealthZ openaf/nattrmon Output HTTP
Output nOutput_HTTP openaf/nattrmon Output HTTP
Output nOutput_HTTP_Metrics openaf/nattrmon Output HTTP
Output nOutput_HTTP_JSON openaf/nattrmon Output HTTP
Output nOutput_HTTP_Status openaf/nattrmon Output HTTP
Output nOutput_HTMLStatus openaf/nattrmon Output HTTP
Output nOutput_Log openaf/nattrmon Output Log
Output nOutput_NDJson openaf/nattrmon Output Log
Output nOutput_Oracle openaf/nattrmon Output History
Output nOutput_Stdout openaf/nattrmon Output Log
Output nOutput_Channels openaf/nattrmon Output Channels
Output nOutput_RemoteChannel openaf/nattrmon Output Channel
Output nOutput_Notifications openaf/nattrmon Output Warnings
Output nOutput_WarnsHistory openaf/nattrmon Output History
Output nOutput_ES openaf/nattrmon Output ES
Output nOutput_Slack openaf/nattrmon Output Slack

Validations

Type Name Repository Category
Validation nValidation_Generic openaf/nattrmon Validation Generic

Object templates

Input object

To build an input object follow the following javascript template:

/**
* <odoc>
* <key>nattrmon.nInput_MyInput(aMap)</key>
* aMap is composed of:\
* - keys (the key of the objects to refer to)
* - chKey (the channel name for the keys of objects to refer to)
* - attrTemplate (a string template for the name of the attribute using )
* </odoc>
*/
var nInput_MyInput = function(aMap) {

  this.params = aMap;

  if (isUnDef(this.params.myMandatoryArg)) this.params.myMandatoryArg = "something";  

  nInput.call(this, this.input);
}

inherit(nInput_MyInput, nInput);

nInput_MyInput.prototype.input = function(scope, args) {
  var ret = {};
  var attrname = templify(this.params.attrTemplate, { name: this.params.name });
  
  ret[attrname] = runSomething();

  return ret;
}

Validation object

To build a validation object follow the following javascript template:

/**
* <odoc>
* <key>nattrmon.nValidation_MyValidation(aMap)</key>
* aMap is composed of:\
* - warnTemplate (a string template for the warning title using )
* - warnDescTemplate (a string template for the warning description )
* </odoc>
*/
var nValidation_MyValidation = function(aMap) {
  this.params = aMap;
  if (isUnDef(this.params.myMandatoryArg)) this.params.myMandatoryArg = "something";

  nValidation.call(this, this.validation);
}

inherit(nValidation_MyValidation, nValidation);

nValidation_MyValidation.prototype.validate = function(scope, args) {
  var ret = [];
  var title = templify(this.params.warnTemplate);
  var description = templify(this.params.warnDescTemplate);

  if (somethingIsWrong)
    ret.push(new nWarning(nWarning.LEVEL_HIGH, title, descripiton));
  else
    this.closeWarning(title);

  ret.push(new nWarning(nWarning.LEVEL_INFO, "A information", "Just for fyi..."));

  return ret;
}

Output object

To build an output object follow the following javascript template:

/**
* <odoc>
* <key>nattrmon.nOutput_MyOutput(aMap)</key>
* aMap is composed of:\
* - inclusionList (a list of attributes to include)
* - chInclusionList (a channel name with attributes to include)
* </odoc>
*/
var nOutput_MyOutput = function(aMap) {
  this.params = aMap;
  if (isUnDef(this.params.myMandatoryArg)) this.params.myMandatoryArg = "something";

  nOutput.call(this, this.output);
}

inherit(nOutput_MyOutput, nOutput);

nOutput_MyOutput.prototype.output = function(scope, args) {
  for(key in scope.getCurrentValues()) {
    ...
  }
}