AutoNOC 2.5 User Guide
Preface
Acknowledgements
System Requirements
Legal

Part 1 - Introduction
1.1 The Ideal Difference
1.2 Automated Operations
1.3 Services & Scaler
1.4 Acquisition Stacks
1.5 Portal Deployment
1.6 Discovery and Crawler
1.7 Monitoring Agents
1.8 Recoiling Database
1.9 Multiple Languages
1.10 Security

Part 2 - NOC Views
2.1 Investigate
2.2 Observe
2.3 Visualize
2.4 Alarms
2.5 Analyze
2.6 Design
2.7 Configure

Part 3 - Model Design
3.1 Object Model
3.2 Devices
3.3 Sets
3.4 Set Criteria
3.5 Probes
3.6 Logs & Events
3.7 Alarms
3.8 Actions
3.9 Reports
3.10 Users
3.11 Polling
3.12 Service Levels
3.13 Dependencies
3.14 Performance

Part 4 - Developer Features
4.1 Adding SNMP MIBs
4.2 Variables
4.3 OSP API
4.4 Probe Template
4.5 Log Template
4.6 Device Template
4.7 Interface Template
4.8 Rebranding

Part 5 - Troubleshooting
5.1 General Issues
5.2 Linux
5.3 Windows

Appendix
A.1 OSP API Functions
A.2 Variables
A.3 Object Reference

4.2 Variables
AutoNOC stores tidbits of information within objects in the model. These bits of information are called Variables. Currently the following base object types have variable stores built in to them:
  • Devices
  • Components
  • Device Templates
  • Interface Templates
  • Probe Templates
  • Log Templates

An example variable store for a device is shown in the following screenshot:

4.2.1 Scope, Variable Access, and Resolution
As detailed in 4.3 - Interpreter every expression in AutoNOC is evaluated at the scope of some object and variables are accessed via the % operator at that scope. When AutoNOC encounters the % operator, it looks at the scope of the current evaluation situation and then proceeds to evaluate and resolve the variable. An example of a variable would be %IP which attempts to resolve an IP address.

AutoNOC follows these steps when resolving a variable:

  1. Record
    When AutoNOC is evaluating databases full of data, the expression interpreter will have the scope of a record. For instance, when the interpreter is evaluating an expression at the scope of a probe's database record and it is asked to evaluate the %V variable for the relevant value, it will return the value for the probe's record. If there is no current record in scope, then AutoNOC moves to the next resolution dependency below.
      
  2. Object
    If there is no current record, then AutoNOC will attempt to resolve the variable as related to the current object state and properties. For instance, %V will return the current or most recent value, as %L will return the current level for the object. As another example, %OBJNAME looks up the current object name.
      
  3. Variable Store
    If the variable is unresolvable in terms of the current record and the object state, then the next step is to examine the current variable store, if there is one, for a definition. AutoNOC takes the variable and searches the variable store in a case insensitive manner for a variable that is defined within the variable store for the object. If it finds one than this value is used for the variable.
      
  4. Template
    If there is no available variable store, then AutoNOC checks to see if the current scope is a templatized object such as a probe. If it is, then AutoNOC will temporarily move the scope to the template and try and resolve the variable within the scope of the template. All templates have variable stores so usually this means looking through the variable store of the template for globally defined variables.
     
  5. Alarm
    If an action is currently being fired, then certain variables, such as %TRIGGERTYPE will be defined. AutoNOC will evaluate the current variable against any such defined variables.
     
  6. Parent
    If the variable is still unresolvable, then the software moves up the ladder to the parent of the object. For instance, when evaluating an expression in terms of a probe, AutoNOC then moves to the component of the object to resolve it, then to the category, and finally to the device. Each step along the way it tries to resolve the variable.
     
  7. Global
    If a variable is unresolvable in terms of any parent object, then AutoNOC will check the globally defined variables to see if the variable can be resolved. %PORTALNAME would be an example of a globally resolvable variable.

This system is somewhat sophisticated when reading it on paper, but it actually works together in a very clean way to make it easy to author sophisticated expressions that can be applied generically in large scale operational models.

4.2.2 User Variables
Users can specify their own variables and add their own variables to objects. Note that if you specify a variable that AutoNOC makes use of by default, you will be over-riding that variable for objects evaluated in that scope. For instance, if you add a %PORTALNAME variable to a component, then any expression evaluated at that object level or as a child will return the user defined variable.

Also, let us point out that you can define your own custom variables. For instance, you can create probes that behave one way 95% of the time and another way for certain devices.

For a complete list of AutoNOC's standard defined variables, see A.2 - Variables.

(C) 2007 - All Rights Reserved - AutoNOC LLC
      Call me!