Every component discovered in a NetIQ Cloud Manager Orchestration-enabled network is identified and abstracted as an object. Within the Orchestration management framework, objects are stored within an addressable database called a Grid. Every Grid object has an associated set of facts and constraints that define its properties and characteristics. Essentially, by building, deploying, and running jobs on the Orchestration Server, you can individually change the functionality of any and all system resources by managing an object’s facts and constraints.
The components that have facts include Jobs, Resources (including physical machines, virtual machines and VM hosts), Virtual Disks (vDisks), Virtual NICs (vNICs), Repositories, Virtual Bridges, and Users. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator (unless they are read-only).
The XML fact element defines a fact to be stored in the grid object’s fact namespace. The name, type and value of the fact are specified as attributes. For list or array fact types, the element tag defines list or array members. For dictionary fact types, the dict tag defines dictionary members.
See the examples in the directory, /allTypes.policy. This example policy has an XML representation for all the fact types.
Facts can also be created and modified in JDL and in the Java Client SDK
As a Job Developer, you might want certain constraints to be used for a job and you might specify these in the policy. These comprise a set of logical clauses and operators that are compared with the respective component’s fact values when the job is run by the Job Scheduling Manager. See
Remember, all properties appear in the job context, which is an environment where constraints are evaluated. These constraints provide a multilevel filter for a job in order to ensure the best quality of service the grid can provide.
This section includes the following information:
For further fact information found in jobs, see Section 7.0, Job Examples and Section 2.2.2, Using Facts in Job Scripts.
The following table explains the abbreviated codes used to describe facts for Orchestration Grid objects:
Table 4-1 Cloud Manager Orchestration Fact Types
Type |
Description |
---|---|
Automatic |
The fact should be automatically set after the successful discovery of virtual resources (VM Hosts and VMs). |
Boolean |
The fact is a Boolean value. |
Default |
The specified default value of the fact is set. |
Dictionary |
The fact is selected from a specified dictionary listing. |
Dynamic |
The fact is dynamically generated. |
Enumerate |
The fact is a specified enumerated value. |
Example |
When available, provides an example how a fact might be applied to an object. |
Integer |
The fact is an integer value. |
Real |
The fact is a real number. |
String |
The fact is a string value. |
Datagrid |
Facts relate to datagrid object types. |
Local |
Facts relate to local object types. |
NAS |
Facts relate to Network Attached Storage (NAS) object types. |
SAN |
Facts relate to Storage Area Network (SAN) object types. |
Virtual |
Facts relate to virtual object types. |
A fact junction is a special type of fact that provides a convenient way to access facts on Grid objects related to the one where the fact lookup is being performed. The following diagram shows the fact junction relationships of all the Grid objects:
Figure 4-1 Fact Junctions Between Objects in a Sample Orchestration Grid
As an example of how a fact junction works, a fact lookup on vmhost.resource.id is redirected from the VM host object, through the junction onto the underlying physical Resource object. In other words, the value returned is the same as if a fact lookup for resource.id was performed on the underlying physical resource. This is accomplished with the following JDL:
vmhost1 = getMatrix().getGridObject(TYPE_VMHOST, "vmhost1") print vmhost1.getFact("vmhost.resource.id")
Another example is vdisk.repository.freespace, which returns the amount of free space in the repository that is associated with the virtual disk where the fact lookup is being performed:
vdisk = getMatrix().getGridObject(TYPE_VDISK, "vm1_vdisk1") print vdisk.getFact("vdisk.repository.freespace")
Note that the fact junction refers to the related Grid object rather than to any of its facts. Therefore, to obtain the ID of the repository associated with a given virtual disk, you must perform a lookup on vdisk.repository.id rather than vdisk.repository.
It is important to understand how the fact name is constructed from the junction, otherwise certain usages of fact junctions can be confusing, especially when used with facts that contain the dot (“.”) character. For example, starting with a vDisk Grid object as above:
vdisk = getMatrix().getGridObject(TYPE_VDISK, "vm1_vdisk1")
vDisk objects have a fact junction, vdisk.vm, that points to the VM associated with the vDisk. If you want to find all VNICs associated with this VM, remember that VMs have a fact resource.vm.vnics that provides the desired array. However, because Cloud Manager Orchestration accesses this fact by using the vdisk.vm fact junction, you must replace the resource component of the resource.vm.vnics fact with vdisk.vm. Therefore, the required code is:
print vdisk.getFact(“vdisk.vm.vm.vnics”)
Some fact junctions return an array of values rather than a single value. For example, the junction vmhost.repositories returns an array of all the repositories visible to the VM host where the lookup is being performed:
vmhost1 = getMatrix().getGridObject(TYPE_VMHOST, "vmhost1") print host1.getFact("vmhost.repositories")
In this case, you can also single out one of the Grid objects returned in the array and perform fact lookups on that object. For example, if the repository san1 is accessible by vmhost1, then
print vmhost1.getFact("vmhost.repositories[san1].freespace")
returns the amount of free space available in the san1 repository.
repo_host1 = getMatrix().getGridObject(TYPE_REPOSITORY, "host1") print repo_host1.getFact("repository.vmhosts[host1_demoAdapter].networks")
Fact junction lookups can be chained multiple times, even mixing use of single-valued and array-valued junctions:
vdisk = m.getGridObject(TYPE_VDISK, "vm1_vdisk1") print vdisk.getFact("vdisk.repository.vmhosts[vmhost1].networks") host1 = m.getGridObject(TYPE_RESOURCE, "host1") print host1.getFact("resource.vmhosts[host1_demoAdapter].repositories[san1].freespace")
For a more comprehensive list of available fact junctions, see the example factJunction.job stored at /opt/novell/zenworks/zos/server/examples on your server installation system.
This section includes the following information:
The Constraints/Facts tab opens a page that shows all of the effective constraints and facts for a Grid object. Each Grid object has an associated set of facts and constraints that define its properties. In essence, by changing the policy constraints and fact values for a job, you can change the behavior of the job and how the Orchestration Server allocates available system resources to it. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only.
The following table lists the default facts created by the Orchestration Server for the Job object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time. Where facts can be deleted in the Development Client, they can also be deleted in the GridObjectInfo.deleteFact() method in JDL.
Table 4-2 Job Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
job.accountinggroup |
String |
The default job group whose statistics are updated when this job runs. |
|
job.autoterminate |
Boolean |
Whether this job ends when all child jobs and joblets end |
|
job.cacheresourcematches.ttl |
Integer |
Indicates the jobs willingness to allow resource maches to be cached if the scheduler becomes too loaded. The value is the TTL of the cache in seconds ('<=0' to disable caching) |
|
job.description |
String |
Textual description of job |
|
job.enabled |
Boolean |
True if the job is enabled (able to be run). |
|
job.groups |
String[] |
r/o |
The groups where this job is a member. |
job.history.cost.average |
Real |
dynamic, r/o |
The average cost of running this job measured since job deployment or last modification. Only updated if the job finishes successfully. |
job.history.cost.total |
Real |
dynamic, r/o |
The total cost of running this job measured since job deployment or last modification |
job.history.gcycles.average |
Integer |
dynamic, r/o |
The average amount of normalized grid time (gcycles) taken by running this job. Only updated if the job finishes successfully. |
job.history.gcycles.total |
Integer |
dynamic, r/o |
The total amount of normalized grid time (gcycles) consumed by this job since deployment |
job.history.jobcount |
Integer |
dynamic, r/o |
The total number of job instances of this job ever initiated on the system (includes those denied by 'accept' constraints |
job.history.jobcount.cancelled |
Integer |
dynamic, r/o |
The total number of job instances of this job that were cancelled |
job.history.jobcount.complete |
Integer |
dynamic, r/o |
The total number of job instances of this job that were completed |
job.history.jobcount.failed |
Integer |
dynamic, r/o |
The total number of job instances of this type that failed |
job.history.queuetime.average |
Integer |
dynamic, r/o |
The average wall time spent waiting for this job to start in seconds |
job.history.queuetime.total |
Integer |
dynamic, r/o |
The total amount of time this job has spent in a queued state since last deployment. |
job.history.runtime.average |
Integer |
dynamic, r/o |
The average runtime of this job in seconds. Only updated if the job finishes successfully. |
job.history.runtime.total |
Integer |
dynamic, r/o |
The total runtime of the job since deployment in seconds |
job.history.samplesize |
Integer |
The number of points used in the trailing average calculation for all historical averages |
|
job.history.time.average |
Integer |
dynamic, r/o |
The average wall time taken by running this job in seconds. This fact is updated only if the job finishes successfully. |
job.history.time.total |
Integer |
dynamic, r/o |
The total combined resource wall time of all work performed on behalf of this job since deployment in seconds |
job.id |
String |
r/o |
The name of the job. |
job.instances.active |
Integer |
dynamic, r/o |
The number of job instances of this type that are active in the system ('running' or 'paused')c |
job.instances.queued |
Integer |
dynamic, r/o |
The number of job instances of this type that are in a queued state |
job.instances.total |
Integer |
dynamic, r/o |
The total number of job instances of this type that exist in the sytem |
job.joblet.immediateretry |
Boolean |
Specifies whether the system to attempt to immediately retry a joblet rather than waiting until all others are running/complete before retrying |
|
job.joblet.max |
Integer |
The absolute maximum number of joblets this job may schedule. |
|
job.joblet.maxfailures |
Integer |
Specifies the number of non-fatal joblet errors to tolerate before failing completely or '-1' to attempt to continue after errorsc |
|
job.joblet.maxperresource |
Integer |
The absolute maximum number of joblets this job may occupy on any one resource ('-1' indicates no limit) |
|
job.joblet.maxretry |
Integer |
The maximum number of joblet retries of any type that will be attempted before considering the joblet as failed (0 means don't retry, <0 means keep retrying) |
|
job.joblet.maxrunning |
Integer |
The absolute maximum number of joblets a job is allowed to have running at one time. This value will never be exceeded ('-1' indicates no limit) |
|
job.joblet.maxwaittime |
Integer |
The maximum (resource) wait time permitted by a joblet in seconds ('-1' indicates no timeout) |
|
job.joblet.retrylimit.disconnect |
Integer |
The number of joblet retries caused by unexpected resource disconnect that will be allowed before considering the joblet as failed (0 means don't retry, <0 means keep retrying). Can never exceed job.joblet.maxretry |
|
job.joblet.retrylimit.forced |
Integer |
The number of forced joblet retries (requested by the joblet to run an another resource) that will be allowed before considering the joblet as failed (0 means don't retry, <0 means keep retrying). Can never exceed job.joblet.maxretry |
|
job.joblet.retrylimit.timeout |
Integer |
The number of joblet retries caused by server inititated joblet timeout that will be allowed before considering the joblet as failed (0 means don't retry, <0 means keep retrying). Can never exceed job.joblet.maxretry. |
|
job.joblet.retrylimit.unforced |
Integer |
The number of unforced joblet retries that will be allowed before considering the joblet as failed (0 means don't retry, <0 means keep retrying). Can never exceed job.joblet.maxretry |
|
job.joblet.runtype |
String |
Specify file and executable operations run in Joblet are in behalf of the Job user or not. |
|
job.joblet.timeout |
Integer |
The timeout after which the server will take action to cancel the joblet (seconds, '-1' indicates no timeout) |
|
job.joblet.tracing |
Boolean |
Indicates whether the joblet should include tracing information in the job log when executing joblet events |
|
job.jobtime |
|
The average wall time this job should take to run. Used to override the computed average when job is of type 'fixedtime' (in seconds) |
|
job.jobtype |
String |
The type of job -- used in completion time calulation (normal, workflow, pspace, fixedtime, fixedcycles) |
|
job.maxnodefailures |
Integer |
The maximum number of resource failures that are to be tolerated before excluding the node from future joblet processing. A value of -1 indicates that unlimited failures are acceptable. |
|
job.maxresources |
Integer |
The absolute maximum number of resources that a job is allow to use at one time. This value will never be exceeded. A value of -1 indicates no limit. |
|
job.persistfactsonfinish |
Boolean |
Whether the Grid objects that this job modifies are to be persisted at job end. Used and applicable only when installed in a high availablity cluster. |
|
job.preemptible |
Boolean |
Indicates whether this job is willing or able to be preempted. Turned on by setting joblet.preemptible. (can be overridden by the job instance). |
|
job.preemption.rankby |
String[] |
The ranking specification used to select suitable jobs to automatically preempt a resource on. The syntax for each element in the list is <fact>/<order> where order is either “a” for ascending or “d” for descending. |
|
job.provision.hostselection |
String |
The strategy used in finding a host for any automatically provisioned resource (queue, immediate). |
|
job.provision.maxcount |
Integer |
The number of resources that can be automatically provisioned on behalf of this job. A value of 0 turns off automatic provisioning behavior. A value of -1 allows unlimited provisioning. |
|
job.provision.maxnodefailures |
Integer |
The maximum number of provision failures that will be tolerated before excluding the node from future automatic provisioning. A value of -1 indicates that unlimited failures are acceptable. |
|
job.provision.maxpending |
Integer |
The number of resources tha can be automatically provisioned at one time (simulataneously) on behalf of this job. A value of <=0 turns off automatic provisioning behavor. |
|
job.provision.rankby |
String[] |
The ranking specification used to select suitable resources to automatically provision. Element syntax is <fact>/<order> where order is either ascending or descending. |
|
job.queuedtimeout |
Integer |
The timeout (measured in seconds) after which the server takes action to cancel a queued job, including all joblets and subjobs. A value of -1 indicates no timeout. |
|
job.queuetime |
String |
The average wall time (measured in seconds) spent waiting for this job to start . Used to override the computed average when queue is of type fixedtime. |
|
job.queuetype |
String |
The type of queue from which this job is typically accessed. This is used in start time calculation (none, pfifo, fifo, lifo, fixedtime). |
|
job.resourcegroup |
String |
The default resource group from which resources will be selected for this job (in addition to any resource policies). |
|
job.resources.rankby |
String[] |
The ranking specification used to select suitable resources. Element syntax is <fact>/<order> where order is either ascending or descending. |
|
job.restartable |
Boolean |
Indicates whether this job is willing to be restarted on server restarts (can be overridden by the job instance). |
|
job.timeout |
Integer |
The timeout (measured in seconds) after which the server will take action to cancel the whole job including all joblets and subjobs. A value of -1 indicates no timeout. |
|
job.tracing |
Boolean |
Indicates whether this job should include tracing information in the job log when executing job events. |
|
job.visible |
Boolean |
Whether this job should be visible to the client in queries or UI (it does not stop it being run). |
The following diagram illustrates the relationship between the Job Grid object facts and other Grid objects. It also shows the relationship between other discrete Grid object facts and the Job Grid object itself.
Figure 4-2 Job Fact Junctions
Table 4-3 Job Group Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
group.id |
String |
r/o |
The name of the group. |
group.jobinstances.active |
Integer |
dynamic, r/o |
The number of job instances that are active on resources in this group ('running' or 'paused'). |
group.jobinstances.queued |
Integer |
dynamic, r/o |
The number of job instances that are in a queued state awaiting start on resources in this group. |
group.jobinstances.total |
Integer |
dynamic, r/o |
The total number of job instances running on, or awaiting start on resources in this group. |
A job instance is a currently running or recently completed job. All jobinstance facts are viewable only in the Policy Debugger page of the Jobs Monitor. You need to select the
check box to view these facts. These facts are not editable.NOTE:If the job you want to view finished previously, it is possible that it can no longer be viewed in the Policy Debugger if other jobs followed it on the Orchestration Server.
Table 4-4 Jobinstance Facts
Fact Name |
Fact Type |
Description |
---|---|---|
jobinstance.childids |
String[] |
String array of child job IDs. If no child jobs were launched, the arrayis empty. |
jobinstance.cost |
Real |
The cost (measured in dollars) of this job. |
jobinstance.cost.burnrate |
Real |
The computed moving average burn rate (measured in dollars per hour) of the job. |
jobinstance.errors |
String |
The error messages recorded for a failed job. |
jobinstance.id |
String |
The job instance unique identifier |
jobinstance.instancename |
String |
The optional, human readable name for this job instance. |
jobinstance.joblet.pspace |
Integer |
The number of rows in a fully expanded p-space definition. Will be equal to the number of joblets only if jobinstance.joblet.size is 1. |
jobinstance.joblet.size |
Integer |
The number of p-space rows encapsulated in each joblet. May be explicitly set of derived as a result of specifing joblet count |
jobinstance.joblets.cancelled |
Integer |
The number of joblets that ended in a cancelled state. |
jobinstance.joblets.complete |
Integer |
Number of joblets that completed successfully. |
jobinstance.joblets.count |
Integer |
The number of joblets under management of this job instance. |
jobinstance.joblets.failed |
Integer |
The number of joblets that ended in a failed state. |
jobinstance.joblets.running |
Integer |
The number of joblets that are actively running on resources. |
jobinstance.joblets.waiting |
Integer |
The number of joblets that are waiting for available resources. |
jobinstance.matchingresources |
Integer |
The number of currently active resources that match the resource contraints. |
jobinstance.memo |
String |
A brief memo set by this job instance that can be seen in user/administrator portals. |
jobinstance.originid |
String |
The job identifier of the root job of this hierarchy or this job if a top level job. |
jobinstance.parentid |
String |
The job identifier of the parent job of this hierarchy or empty if this is a top level job with no parent. |
jobinstance.preemptible |
Boolean |
Specifies that this job instance is willing to give up resources if required. Initially set from the equivalent job fact. |
jobinstance.priority |
Integer |
The numeric representation of the current priority of this job instance (1=lowest, 9=highest). Default value is the user's default priority. |
jobinstance.priority.string |
String |
The string representation of the current priority of this job instance. |
jobinstance.privileged |
Boolean |
Indicates whether the current workflow is running as a privileged job, and if so, that its joblets can be run in a resource’s extra system joblet slots. The fact value is true when either of the following conditions are met:
|
jobinstance.problemresources |
String[] |
The number of resources that are excluded from this job instance due to reaching the job.maxnodefailures limit. |
jobinstance.provision.avoidresources |
String[] |
The names of automatically provisioned resources that are currently being avoided (not yet excluded) because of prior provisioning errors. |
jobinstance.provision.count |
Integer |
The total number of resources that have been automaticaly provisioned (or are in progress) for this job. |
jobinstance.provision.pending |
Integer |
The total number of automatically provisioned resources that are pending online status. |
jobinstance.provision.problemresources |
String[] |
The names of automatically provisioned resources that encountered provisioning errors and have been excluded. |
jobinstance.provision.problemresources.count |
Integer |
The number of automatically provisioned resources that encountered provisioning errors and have been excluded. |
jobinstance.resources |
String[] |
The resources currently in use by this job |
jobinstance.resources.count |
Integer |
Number of resources currently in use by this job |
jobinstance.restarted |
Boolean |
Whether this job instance was been restarted due to server restart. |
jobinstance.startat |
Date |
The date/time that this job was requested to start atc |
jobinstance.starttime |
|
The formated start date and time for this job instance |
jobinstance.state |
Integer |
The numeric state of this job instance |
jobinstance.state.string |
String |
String representation of the current state of this job instance |
jobinstance.terminationtype |
String |
The cause of the termination for a cancelled or failed job. |
jobinstance.time.completed |
Date |
The time this job instance completed or an estimation if still active |
jobinstance.time.elapsed |
Integer |
The elapsed wall time this job instance has been running or ran (in seconds) |
jobinstance.time.elapsed.string |
String |
The elapsed wall time this job instance has been in a running |
jobinstance.time.queued |
Integer |
The elapsed wall time this job instance has been a queued (in second)s |
jobinstance.time.started |
Date |
The time this job instance was actually started or an estimating if queued |
jobinstance.time.submitted |
Date |
The time this job instance was submitted |
The following diagram illustrates the relationship between the Jobinstance facts and other Grid objects.
Figure 4-3 Jobinstance Fact Junctions
Joblet facts can be accessed only if you write code within the Joblet subclass of a JDL file. If you code a job to expose the joblet fact values, the Orchestration Server runs the scheduled joblets and you can see the joblet fact values in the Job Log tab of the Orchestration Console.
The available joblet facts and their descriptions are listed in the following table.
Table 4-5 Joblet Facts
Fact Name |
Description |
---|---|
joblet.autoterminate |
Whether the joblet ends when all events for the joblet ends. |
joblet.errors |
The list of error dictionaries encapsulating the error history for this joblet. Dictionary keys:
|
joblet.history |
The list of resource IDs where the joblet has run. |
joblet.id |
The unique identifier for this joblet. |
joblet.instancename |
A human readable name for this joblet instance. |
joblet.memo |
An (optional) memo field for this joblet that can be displayed in the management console. |
joblet.number |
The joblet number. |
joblet.preemptible |
Indicates whether this joblet is willing or able to be preempted. |
joblet.retrynumber |
The number of retries for this joblet (0 on first attempt). |
joblet.state |
The numeric state of this joblet instance. |
joblet.state.string |
String representation of the current state of this joblet instance. |
joblet.timeout |
The time after which this joblet will be cancelled/retried. (seconds, defaults to job.joblet.timeout). |
This section includes the following information:
The Resource object (a physical or virtual machine) has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only. Facts with mode r/o have read-only values, which can be viewed but changes cannot be made.
The following table lists the default facts created by the Orchestration Server for the Resource object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-6 Resource Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
resource.agent.clustered |
Boolean |
Whether the agent is clustered (converts duplicate logins to failover logins) |
|
resource.agent.config.datagrid.cache |
Boolean |
Whether the agent caches datagrid files. |
|
resource.agent.config.datagrid.cache.cleanupinterval |
Integer |
Wait time (measured in minutes) between cleanup sweeps of the datagrid cache. |
|
resource.agent.config.datagrid.cache.lifetime |
Integer |
How long inactive files should remain in the agent's datagrid cache (in minutes). 0 turns off the cache. |
|
resource.agent.config.exec.asagentuseronly |
Boolean |
Whether the agent always runs executables only as the agent user. This overrides any Job fact settings ('job.joblet.runtype'). |
|
resource.agent.config.exec.daemon.timeout |
Integer |
How long for the enhanced exec daemon to remain running (in seconds). 0 means remain running. |
|
resource.agent.config.exec.enhancedused |
Boolean |
Whether the agent uses the enhanced exec or not. |
|
resource.agent.config.gmond.port |
Integer |
Setting for gmond port (8649 is the default). 0 or less means values will not be read. |
|
resource.agent.config.joblet.cleanup |
Boolean |
Whether the agent cleans up temporary directories created for each joblet. Can be turned off for debugging purposes and then “catches up” when re-enabled. |
|
resource.agent.config.logdebug |
Boolean |
Turns on agent debugging (additive to log level) |
|
resource.agent.config.loglevel |
String |
Controls the verbosity of agent logging (quiet, normal, verbose) |
|
resource.agent.exec.installed |
Boolean |
Whether the agent is installed with the enhanced exec or not. |
|
resource.agent.home |
String |
The home directory of the agent install. |
|
resource.agent.jvm.home |
String |
The home directory of the JVM in use by the agent. |
|
resource.agent.jvm.memory |
Integer |
The memory available to the agent (megabytes). |
|
resource.agent.jvm.runtime |
String |
The Java JVM runtime in use by the agent. |
|
resource.agent.jvm.vendor |
String |
The Java JVM vendor in use by the agent. |
|
resource.agent.jvm.version |
String |
The Java JVM version in use by the agent. |
|
resource.agent.version |
String |
dynamic, r/o |
The agent version and build number <major>.<minor>.<point>_<build> |
resource.auth.provider |
String |
dynamic, r/o |
The authentication provider to which the node authenticates |
resource.becameidle |
Date |
dynamic, r/o |
The date/time the resource became idle or '-1' if not idle |
resource.billfor |
String |
Whether to bill on wall time or grid time (walltime, gcycles) |
|
resource.billingrate |
Real |
The billing rate for this resources in $/hr |
|
resource.cpu.architecture |
String |
del |
The CPU architecture e.g. x86, x86_64, sparc (requires cpuInfo system job). |
resource.cpu.hvm |
Boolean |
del |
True if the CPU has hardware virtualization support. |
resource.cpu.mhz |
Integer |
del |
The speed (measured in MHz) of the processor (requires cpuInfo system job) |
resource.cpu.model |
String |
del |
The CPU model number (requires cpuInfo system job) |
resource.cpu.number |
Integer |
The number of available CPU cores available for processing. This counts each core in a multicore package as its own core, so a Core 2 duo physical CPU displays as two CPUs. |
|
resource.cpu.vendor |
String |
del |
The CPU vendor (requires cpuInfo system job). |
resource.cpuload |
Integer |
dynamic, r/o |
The percent CPU load on the resource. |
resource.enabled |
Boolean |
True if the resource is enabled (allowed to log in and accept work). |
|
resource.groups |
String[] |
r/o |
The groups this node is a member of. |
resource.hardware.model |
String |
The vendor-specific hardware model (for example, Dell PowerEdge 1850). |
|
resource.hardware.vendor |
String |
The name of the hardware vendor (for example, Dell, IBM, or similar). |
|
resource.health |
Boolean |
The health of this resource. True indicates good health. |
|
resource.history.cost.total |
Real |
dynamic, r/o |
The cost (measured in matrix dollars ($)) of all work performed on this resource. |
resource.history.gcycles.total |
Integer |
dynamic, r/o |
The total grid time (gcycles) of all work performed on this resource. |
resource.history.jobletcount |
Integer |
dynamic, r/o |
The total number of joblets ever run on this resource. |
resource.history.jobletcount.cancelled |
Integer |
dyanmic, r/o |
The total number of joblets that were canceled. |
resource.history.jobletcount.completed |
Integer |
dynamic, r/o |
The total number of joblets that completed successfully. |
resource.history.jobletcount.failed |
Integer |
dynamic, r/o |
The total number of joblets that failed. |
resource.history.time.total |
Integer |
dynamic, r/o |
The total wall time (measured in seconds) of all work performed on this resource. |
resource.hostname |
String |
del |
The resource’s hostname |
resource.hostname.full |
String |
del |
The fully qualified hostname. |
resource.id |
String |
r/o |
The node’s login name |
resource.installed.apps |
String[] |
del |
The installed applications |
resource.ip |
String |
del |
The resources IP address |
resource.joblets.active |
Integer |
dynamic, r/o |
The number of joblets currently active on this resource |
resource.joblets.maxslots |
Integer |
dynamic, r/o |
The absolute maximum number of work slots availabe to regular and privileged joblets. |
resource.joblets.slots |
Integer |
The number of regular joblets that this resource runs at one time. |
|
resource.joblets.systemslots |
Integer |
The number of extra slots that will be made available to privileged “system” joblets. |
|
resource.loadaverage |
Real |
dynamic, r/o |
The load average on the resource (from 'uptime' or equivalent). |
resource.memory.physical.available |
Integer |
del |
The amount (measured in Mb) of free physical memory available on the resource. |
resource.memory.physical.total |
Integer |
del |
The total amount (measured in Mb) of physical memory on the resource. |
resource.memory.swap.available |
Integer |
del |
The amount (measured in Mb) of free swap space. |
resource.memory.swap.total |
Integer |
del |
The total amount (measured in Mb) of external VM swap space configured on the host. Wwap space allows the hypervisor or OS to swap out infrequently used memory pages to disk or other storages to make it appear that virtual memory is larger than physical memory. |
resource.memory.virtual.available |
Integer |
del |
The amount of available (free) virtual memory (measured in Mb) on the system. This might be more than the amount of physical memor if the host hypervisor or Operating system supports paging of VM to disk or other swap storage. |
resource.memory.virtual.total |
Integer |
del |
The total amount (measured in Mb) of virtual memory on the resources. |
resource.network.agent.address |
The agent side IP address for the current connection |
||
resource.network.agent.port |
The agent side TCP port number for the current connection |
||
resource.network.config.server.address |
The IP address used by the agent to connect to the server |
||
resource.network.config.server.hostname |
The host name used by the agent to connect to the server |
||
resource.network.config.server.port |
The TCP port number used by the agent to connect to the server |
||
resource.network.server.address |
The server side IP address for the current connection |
||
resource.network.server.port |
The server side TCP port number for the current connection |
||
resource.network.throughput |
The measured average network connection throughput in Mbits/sec to neighouring resource (requires netInfo system job) |
||
resource.network.throughput.max |
The maximium network connection speed in Mbits/sec (requires netInfo system job) |
||
resource.online |
Boolean |
dynamic, r/o |
True if the agent is online |
resource.os.arch |
String |
del |
The operating system architecture e.g. x86, amd64, i386, sparc |
resource.os.family |
String |
The family of operating system (windows, linux, solaris, unix, aix, mac |
|
resource.os.file.separator |
String |
del |
The resource operating system file separator |
resource.os.name |
String |
The name of the resource operating system |
|
resource.os.type |
String |
Unique string identifier for each OS release (e.g. 'sles11') |
|
resource.os.vendor |
String |
The operating system vendor (SuSE for SLES/SLED) |
|
resource.os.vendor.string |
String |
del |
The operating system full identification string (requires osInfo system job) |
resource.os.vendor.version |
String |
del |
The vendor defined version number, for example, 10 for SUSE v10. |
resource.os.version |
String |
del |
The operating system version numberc |
resource.os.version.string |
String |
del |
The operating system vendor full identification string (requires osInfo system job) |
resource.password |
string |
dynamic |
The agents's login password |
resource.powerfactor |
Real |
dynamic, r/o |
The normalized power index of this machine relative to a 2.0Ghz, Intel Pentium 4 |
resource.provision.automatic |
Boolean |
dynamic, r/o |
Signifies that this resource was cloned/provisioned automatically and thus will be shutdown/destroyed automatically as well |
resource.provision.currentaction |
String |
dynamic, r/o |
The current management action in progress on this provisionable resource |
resource.provision.jobid |
String |
dynamic, r/o |
The current or last job id that performed a provisioning action on this resource. Useful for viewing job log. |
resource.provision.resync |
Boolean |
dynamic |
Specifies that the provisioned resource's state needs to be resynced with the underlying provisioning technology and the next opportunity |
resource.provision.state |
String |
dynamic, r/o |
The current state of this provisioned instance ('down', 'suspended', 'up', 'paused') or 'unknown' if an admin action is currently being performed. |
resource.provision.status |
String |
dynamic, r/o |
The current descriptive status of the provisioned resource |
resource.provision.template |
String |
dynamic, r/o |
The id of the template resource that this instance was created from (if applicable) |
resource.provision.time.hostwait |
Integer |
dynamic, r/o |
The time (seconds) this resource has been waiting / waited for a suitable host |
resource.provision.time.request |
Date |
dynamic, r/o |
The time when the last provision (or other administrative action) request was made |
resource.provision.time.shutdown |
Date |
dynamic, r/o |
The time when the resource was last shutdown |
resource.provision.time.start |
Date |
dynamic, r/o |
The time when the resource was last successfully provisionedc |
resource.provision.vmhost |
String |
dynamic |
The id of the host currently housing this provisioned resource |
resource.provisionable |
Boolean |
dynamic, r/o |
True if the resources is a provisionable type |
resource.provisioner.autoprep.DNSServers |
|
List of DNS servers for name lookup. This is only for cloning/personalize actions. |
|
resource.provisioner.autoprep.DNSSuffixes |
|
List of suffixes to append to a name for lookup. This is only for cloning/personalize actions. |
|
resource.provisioner.autoprep.Gateways |
|
List of internet gateways available to this VM. This is only for cloning/personalize actions. |
|
resource.provisioner.autoprep.linuxglobal.ComputerName |
|
Host name of new VM. An asterisk (*) means use the new VM's ID. |
|
resource.provisioner.autoprep.linuxglobal.Domain |
|
The name of the domain where the new new VM belongs. |
|
resource.provisioner.autoprep.options.changeSID |
|
The Windows Security ID. If true, sysprep generates a new Security ID. |
|
resource.provisioner.autoprep.options.deleteAccounts |
|
If true, removes all accounts from the destination VM. If false, existing accounts from the source VM are retained. |
|
resource.provisioner.autoprep.sysprep.GuiRunOnce.Command |
|
List of commands that r un the first time a user logs on after the new VM is created. Commands are sched uled using the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce registry key. |
|
resource.provisioner.autoprep.sysprep.GuiUnattended.AdminPassword.plainText |
|
True if the AdminPassword is plain text. |
|
resource.provisioner.autoprep.sysprep.GuiUnattended.AdminPassword.value |
|
The AdminPassword. |
|
resource.provisioner.autoprep.sysprep.GuiUnattended.AutoLogon |
|
If true, the VM auto logs into the Administrator account using AdminPassword. If false, login is prompted.. |
|
resource.provisioner.autoprep.sysprep.GuiUnattended.AutoLogonCount |
|
The limit count for the VM to auto log in with the Administrator account. AutoLogon must be True. |
|
resource.provisioner.autoprep.sysprep.GuiUnattended.TimeZone |
|
The time zone of the new VM. See provisioning reference for values, for example: 04 indicates PST, 10 indicates MST, 20 indicates CST, and 35 indicates EST. |
|
resource.provisioner.autoprep.sysprep.Identification.DomainAdmin |
|
Windows domain administrator name. |
|
resource.provisioner.autoprep.sysprep.Identification.DomainAdminPassword.plainText |
|
True if DomainAdminPassword is in plain text. |
|
resource.provisioner.autoprep.sysprep.Identification.DomainAdminPassword.value |
|
Windows domain administrator account password. |
|
resource.provisioner.autoprep.sysprep.Identification.JoinDomain |
|
Windows domain n ame. If joining a workgroup, then use JoinWorkgroup. For joining a domain, Domai nAdmin and DomainAdminPassword must be defined. |
|
resource.provisioner.autoprep.sysprep.Identification.JoinWorkgroup |
|
Windows workgroup name. If joining a domain, use JoinDomain. |
|
resource.provisioner.autoprep.sysprep.LicenseFilePrintData.AutoMode |
|
Value is either PerServer or PerSeat. If PerServer, AutoUsers must be set. |
|
resource.provisioner.autoprep.sysprep.LicenseFilePrintData.AutoUsers |
|
The number of client licenses. Used only if AutoMode is PerServer. |
|
resource.provisioner.autoprep.sysprep.UserData.ComputerName |
|
The VM's new host na me. An asterisk (*) means to generate the name based on source VM name. |
|
resource.provisioner.autoprep.sysprep.UserData.FullName |
|
The user's full name. |
|
resource.provisioner.autoprep.sysprep.UserData.OrgName |
|
The organization name. |
|
resource.provisioner.autoprep.sysprep.UserData.ProductID |
|
The Windows product key. |
|
resource.provisioner.count |
Integer |
dynamic, r/o |
The total count of operational instances and provisions in progress |
resource.provisioner.debug |
Boolean |
Controls the debug log level in the provisioner |
|
resource.provisioner.host.maxwait |
Integer |
The maximum time to wait for a suitable host before timing out (in seconds, '<0' to wait indefinitely |
|
resource.provisioner.host.preferredwait |
Integer |
The time after which some vmhost constraints will be lifted to increase the available pool by, for example, considering moving the disk image (in seconds, '<0' to wait indefinitely |
|
resource.provisioner.instancecount |
Integer |
dynamic, r/o |
The total count of cloned instances of the template |
resource.provisioner.instances |
String[] |
dynamic, r/o |
The list of id's of the instances of this template resource (if applicable) |
resource.provisioner.job |
String |
The name of the provisioning job that manages the lifecycle of this resource |
|
resource.provisioner.maxinstances |
Integer |
The maximum allowed number of instances of this provisionable resource (applicable only to templates)c |
|
resource.provisioner.recommendedhost |
String |
dynamic |
The host on which the image for this resource is associated. E.g. was suspended or is the preferred host for quick start up. Combined with the 'resource.provisioner.host.preferredwait' can lock a VM to one host. |
resource.remotedesktop |
Boolean |
Whether the resource has a remote desktop (or VNC) access enabled. |
|
resource.repositories |
|
The list of VM repositories visible by this resource (aggregated from VM host containers) |
|
resource.runningjobs |
String[] |
dynamic, r/o |
The list of jobs currently running on this resource |
resource.sessions |
Integer |
dynamic, r/o |
The number of active sessions (resource instances with active agent). Will be 0 or 1 unless a resource template |
resource.shuttingdown |
Boolean |
dynamic, r/o |
True if the node is attempting to shutdown/pause/suspend and does not want new workc |
resource.type |
String |
dynamic |
The type of resource (whether or not the resource is a VM and if so what type of image (physical, vm, vmTemplate) |
resource.vm.basepath |
String |
The filesystem location of the VM file(s) either absolute or relative to the 'repository.location'. |
|
resource.vm.cpu.architecture |
String |
The required cpu architecture e.g. x86, x86_64, sparc, ppcc |
|
resource.vm.cpu.hvm |
Boolean |
True if the VM requires host HVM support (for para virtualization otherwise only full virtualization will be possible). |
|
resource.vm.cpu.weight |
Real |
The CPU weight for this VM. A value of 1.0 represents normal weighting; setting another VM to a weight of 2.0 would mean it would get twice as much cpu as this VM. |
|
resource.vm.files |
Dictionary |
Files that make up this VM. The dictionary key (String) represents the file type (adapter specific), the value is the file path either absolute or relative to repository.location of the resource.vm.repository. |
|
resource.vm.maxinstancespervmhost |
Integer |
The maximum allowed number of instances of this VM image per vmhost |
|
resource.vm.memory |
Integer |
The configured virtual memory requirement of this VM image (megabytes) |
|
resource.vm.networks |
String[] |
dynamic, r/o |
The networks associated with the vm network interfaces. |
resource.vm.preventmove |
Boolean |
Administrator set attribute that will prevent moving VM disks and thus consideration potential other hosts. |
|
resource.vm.repositories |
String[] |
dynamic, r/o |
The repositories where the vm disk images are stored. |
resource.vm.repositories.moveable |
String[] |
dynamic, r/o |
The repositories where the moveable vm disk images are stored. |
resource.vm.repositories.unmoveable |
String[] |
dynamic, r/o |
The repositories where the unmoveable vm disk images are stored.c |
resource.vm.repository |
String |
dynamic |
The default repository where this vm disk images and other config files are/will be stored. |
resource.vm.spec |
|
Dictionary containing the specification for building this VM. Interpreted by the Provisioning Adapter. |
|
resource.vm.underconstruction |
Boolean |
True if the VM is currently under construction |
|
resource.vm.uuid |
String |
The UUID of a virtual machine (vendor/adapter specific). |
|
resource.vm.vcpu.number |
Integer |
The number of virtual CPUs for this VM. |
|
resource.vm.vdisks |
String[] |
dynamic, r/o |
The list of virtual disks that make up this VM.c |
resource.vm.vdisksize |
Integer |
dynamic, r/o |
The total size of all the moveable virtual disks for this VM image (megabytes) |
resource.vm.vendor |
String |
The vendor of a virtual machine |
|
resource.vm.version |
Integer |
The version number for this VM. |
|
resource.vm.vmhost.rankby |
String[] |
The ranking specification used to select suitable vm hosts. Element syntax is '<fact>/<order>' where order is either 'ascending' or 'descending' |
|
resource.vm.vnics |
String[] |
dynamic, r/o |
The list of virtual nics that make up this VM. (aggregated from the VNIC containers) |
resource.vmhosts |
String[] |
dynamic, r/o |
The list of VM host containers supported by this resource (aggregated from VM host containers) |
resource.vnc.ip |
String |
The port number for a vnc session running on the resource. |
|
resource.vnc.port |
Integer |
The port number for a vnc session running on the resource. |
The following diagram illustrates the relationship between the Resource Grid object facts and other Grid objects. It also shows the relationship between other discrete Grid object facts and the Resource Grid object itself.
Figure 4-4 Resource Fact Junctions
The VM Host Resource object has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only. Facts with mode r/o have read-only values, which can be viewed but changes cannot be made.
The following table lists the default facts created by the Orchestration Server for the VM Host Grid object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-7 VM Host Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
vmhost.accountinggroup |
String |
The default VM host group which will be adjusted for VM stats |
|
vmhost.controllingjob |
String |
dynamic |
The ID of a running job that manages VM operations on this host. Setting this informs the VM Manager to prevent other jobs from initiating provisioning actions. This fact is cleared when the managing job ends. |
vmhost.enabled |
Boolean |
True if the VM host is enabled (new VM instances can be provisioned) |
|
vmhost.groups |
String[] |
r/o |
The groups this VM host is a member of |
vmhost.health |
Boolean |
The health of this VM host. True indicates good health |
|
vmhost.hvm |
Boolean |
True if the hypervisor supports the hardware virtualization. |
|
vmhost.id |
String |
r/o |
The VM host's unique name |
vmhost.loadindex.slots |
Real |
dynamic, r/o |
The loading index (the ratio of active hosted VMs to the specified max) |
vmhost.loadindex.virtualmemory |
Real |
dynamic, r/o |
The loading index (ratio of consumed memory to the specifed max) |
vmhost.location |
String |
The VM host's physical location |
|
vmhost.maxvmslots |
Integer |
The maximum number of hosted VM instances |
|
vmhost.memory.available |
Integer |
dynamic, r/o |
The amount of memory available to new virtual machines |
vmhost.memory.max |
Integer |
The maximum amount of memory available to virtual machines (in megabytes) |
|
vmhost.migration |
Boolean |
True if the VM host can support VM migration (also subject to provision adapter cababilities |
|
vmhost.networks |
String[] |
dynamic, r/o |
List of Networks visible to this VM host |
vmhost.online |
Boolean |
dynamic, r/o |
True if the agent on the physical host is online |
vmhost.provisioner.job |
String |
The name of the provisioning adapter job that manages VM discovery on this host |
|
vmhost.provisioner.password |
String |
The password required for provisioning on the VM host (Used by provisioning adapter) |
|
vmhost.provisioner.username |
String |
The username required for provisioning on the VM host (Used by provisioning adapter) |
|
vmhost.repositories |
String[] |
This list of repositories (VM disk stores) visible to this VM host |
|
vmhost.resource |
String |
r/o |
The name of the resource that houses this vm host container |
vmhost.resync |
Boolean |
dynamic |
Specifies that the host should be probed to resync all VMs managed on this host at the next opportunity |
vmhost.shuttingdown |
Boolean |
dynamic, r/o |
True if the VM host is attempting to shutdown and does not want to be provisioned |
vmhost.vbridges |
String[] |
dynamic, r/o |
List of Vbridge objects visible to this VM host |
vmhost.vm.available.groups |
String[] |
The list of resource groups containing VMs that are allowed to run on this host |
|
vmhost.vm.count |
Integer |
dynamic, r/o |
The current number of active VM instances |
vmhost.vm.instanceids |
String[] |
dynamic, r/o |
The list of active VM instances |
vmhost.vm.placement.score |
Integer |
dynamic, r/o |
The 'cost' (score) of moving the disks for a VM to this vmhost. This is *only* visible and valid during a 'vmhost' constraint match (-1 = not possible, 0 = affinity, >0 = expense) |
vmhost.vm.templatecounts |
Dictionary |
dynamic, r/o |
A dictionary of running instance counts for each running VM templatec |
The following diagram illustrates the relationship between the Vm Host Resource Grid object facts and other Grid objects. It also shows the relationship between other discrete Grid object facts and the VM Host Resource Grid object itself.
Figure 4-5 VM Host Fact Junctions
Table 4-8 Resource Group Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
group.id |
String |
r/o |
The group's name |
group.loadaverage |
Real |
dynamic, r/o |
The aggregated load average of all the resource in this group (the membership may be dynamic). |
group.loadpercent |
Integer |
dynamic, r/o |
The percentage of online resources in this group that are currently busy. |
group.resources.busy |
Integer |
dynamic, r/o |
The total number of available resources that are currently busy performing work in this group. |
group.resources.idle |
Integer |
dynamic, r/o |
The total number of available resources that are ready for work in this group. |
group.resources.online |
Integer |
dynamic, r/o |
The total number of online resources (busy and idle) in this group. |
When you install the Orchestration Agent on a machine, you can optionally install the Cloud Manager Monitoring Agent along with it. The Monitoring Agent uses the Ganglia Monitoring Daemon (gmond) to automatically collect metrics and send them to the Cloud Manager Monitoring Server. You can use the following command to check the status of an installed Monitoring Agent:
# /etc/init.d/novell-gmond status
If the daemon is operating normally, it returns a running status.
When you install and configure the Cloud Manager Monitoring Agent (gmond), it is set by default to report metrics on port 8649, which is also detected by the Orchestration Agent. When communication is established, the gmond daemon sends out metrics data, which are then gathered by the Orchestration Agent and set as fact values associated with the resource where the daemon is running. You can verify the connection with the following command:
telnet localhost 8649
If gmond is running and communicating properly, an XML document listing the reported metrics is displayed.
This section includes information about the resource metrics facts that are gathered, the unit conversion performed by Cloud Manager Orchestration on the Ganglia-provided values, and how you can use these facts to help you manage the resources in the grid.
The Orchestration Agent uses the metrics collected by gmond to create fact values for a given resource. These facts are therefore externally generated and are not among the default facts reported by the Orchestration Agent. The agent updates these externally generated fact values every 30 seconds. All of these fact values have a resource.metrics. prefix.
For example, gmond collects a metrics value called load_one. The Orchestration Agent sets this value as the resource.metrics.load_one fact.
To see a list of these facts in the Orchestration Console,
In the Explorer panel, select a resource.
In the Workspace panel, select
.The names of the resource metrics facts are displayed in bold font (in the Development Client interface) because they were added as new facts to the default fact list. The following sample is a list of the default Ganglia-generated metrics facts with data type and an example value:
<fact name="resource.metrics.boottime" value="1239122234.0000" type="Real" /> <fact name="resource.metrics.bytes_in" value="208.8800" type="Real" /> <fact name="resource.metrics.bytes_out" value="68.9700" type="Real" /> <fact name="resource.metrics.cpu_aidle" value="76.9000" type="Real" /> <fact name="resource.metrics.cpu_idle" value="95.2000" type="Real" /> <fact name="resource.metrics.cpu_nice" value="0.0000" type="Real" /> <fact name="resource.metrics.cpu_num" value="2" type="Integer" /> <fact name="resource.metrics.cpu_speed" value="1596" type="Integer" /> <fact name="resource.metrics.cpu_system" value="0.3000" type="Real" /> <fact name="resource.metrics.cpu_user" value="4.0000" type="Real" /> <fact name="resource.metrics.cpu_wio" value="0.4000" type="Real" /> <fact name="resource.metrics.disk_free" value="27090" type="Integer" /> <fact name="resource.metrics.disk_total" value="48213" type="Integer" /> <fact name="resource.metrics.gexec" value="OFF" type="String" /> <fact name="resource.metrics.load_fifteen" value="0.2000" type="Real" /> <fact name="resource.metrics.load_five" value="0.4100" type="Real" /> <fact name="resource.metrics.load_one" value="1.1900" type="Real" /> <fact name="resource.metrics.machine_type" value="x86" type="String" /> <fact name="resource.metrics.mem_buffers" value="299" type="Integer" /> <fact name="resource.metrics.mem_cached" value="761" type="Integer" /> <fact name="resource.metrics.mem_free" value="65" type="Integer" /> <fact name="resource.metrics.mem_shared" value="0" type="Integer" /> <fact name="resource.metrics.mem_total" value="1989" type="Integer" /> <fact name="resource.metrics.os_name" value="Linux" type="String" /> <fact name="resource.metrics.os_release" value="2.6.27.19-5-pae" type="String" /> <fact name="resource.metrics.part_max_used" value="70.8000" type="Real" /> <fact name="resource.metrics.part_max_used.units" value="" type="String" /> <fact name="resource.metrics.pkts_in" value="0.4500" type="Real" /> <fact name="resource.metrics.pkts_out" value="0.6300" type="Real" /> <fact name="resource.metrics.proc_run" value="0" type="Integer" /> <fact name="resource.metrics.proc_total" value="411" type="Integer" /> <fact name="resource.metrics.swap_free" value="2039" type="Integer" /> <fact name="resource.metrics.swap_total" value="2047" type="Integer" /> <fact name="resource.metrics.vm_type" value="" type="String" /> <fact name="resource.metrics.vm_type.units" value="" type="String" />
These are the metrics reported in Orchestration systems that use the gmond.conf created when the Cloud Manager Monitoring Agent was installed and configured. The open source gmond might include other metrics that can be monitored. You can modify the default Orchestration gmond configuration file to report these metrics after it is initially installed and configured. For information about modifying the file, see the gmond.conf man page.
By using the XML constraint language, you can utilize these resource metrics facts as you would use any other fact in Cloud Manager Orchestration. For example, you could create an Event that sets thresholds for the amount of incoming network packets. When that threshold is exceeded, a Scheduled Job could be triggered or a notification e-mail sent. For more information, see Section 3.12, Using an Event Notification in a Job.
The Orchestration Agent converts most of the Ganglia metrics values to Cloud Manager Orchestration standard units. This allows fact values to be compared in constraints without the need to perform conversions explicitly. In cases where units are not known or cannot be converted, a separate fact with a .units suffix is included. For example:
<fact name="resource.metrics.bytes_in" value="bytes/sec" type="String" />
The following table lists the resource.metrics facts and the units of measure used for each fact value:
Table 4-9 Resource Metrics Facts
Resource Metric Fact With Reported Value |
Orchestration Measurement Unit of the Value |
---|---|
boottime |
32-bit seconds timestamp |
bytes_in |
byte rate measured in bytes per second |
bytes_out |
byte rate measured in bytes per second |
cpu_aidle |
percentage |
cpu_idle |
percentage |
cpu_nice |
percentage |
cpu_num |
number of CPUs |
cpu_speed |
megahertz as an integer |
cpu_system |
percentage |
cpu_user |
percentage |
cpu_wio |
percentage |
disk_total |
total in binary megabytes |
disk_free |
total in binary megabytes |
gexec |
simple string |
load_fifteen |
real number |
load_five |
real number |
load_one |
real number |
machine_type |
simple string |
mem_buffers |
memory in megabytes (integer) |
mem_cached |
memory in megabytes (integer) |
mem_free |
memory in megabytes (integer) |
mem_shared |
memory in megabytes (integer) |
mem_total |
memory in megabytes (integer) |
os_name |
simple string |
os_release |
simple string |
pkts_in |
packet rate in packets per second |
pkts_out |
packet rate in packets per second |
proc_run |
processes run (integer) |
proc_total |
total processes (integer) |
swap_free |
memory in megabytes (integer) |
swap_total |
memory in megabytes (integer) |
This section includes the following information:
The vDisk object has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only. Facts with mode r/o have read-only values, which can be viewed but changes cannot be made.
The following table lists the default facts created by the Orchestration Server for the vDisk Grid object.
NOTE:Facts with mode dynamic are dynamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-10 vDisk Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
vdisk.description |
String |
Description of vDisk |
|
vdisk.groups |
String[] |
r/o |
The groups this vDisk is a member of |
vdisk.health |
Boolean |
The health of this vDisk. True indicates good health |
|
vdisk.id |
String |
r/o |
The vDisk’s unique ID. |
vdisk.location |
String |
The repository dependent location definition |
|
vdisk.moveable |
Boolean |
True if the vDisk is moveable The vDisk is not deleted if this fact is set to false. |
|
vdisk.repository |
String |
The name of the repository containing the vDisk image |
|
vdisk.size |
Integer |
The size of this virtual disks (megabytes) |
|
vdisk.type |
String |
The type of vDisk: - file (file backed disk) - block (block device) |
|
vdisk.vm |
String |
r/o |
The name of the VM that uses this vDisk |
The following diagram illustrates the relationship between the Virtual Disk object facts and other Grid objects. It also shows the relationship between other discrete Grid object facts and the Virtual Disk Grid object itself.
Figure 4-6 Virtual Disk Fact Junctions
This section includes the following information:
The VNIC object has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only.
The following table lists the default facts created by the Orchestration Server for the VNIC Grid object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-11 VNIC Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
vnic.description |
String |
Description of vNIC |
|
vnic.groups |
String[] |
r/o |
The groups that this vNIC belongs to. |
vnic.health |
Boolean |
The health of this vNIC. True indicates good health |
|
vnic.id |
String |
r/o |
The unique name of this VNIC. |
vnic.mac |
String |
The MAC address assigned to this VNIC. A empty string implies auto-generate MAC address. |
|
vnic.network |
String |
The network (vbridge group) on which this Vnic is provisioned or wishes to be provisioned. |
|
vnic.provisioner.autoprep.DNSDomain |
String |
Windows only. Adapter's Domain. |
|
vnic.provisioner.autoprep.DNSFromDHCP |
Boolean |
(Optional, SUSE VM only.) If true, then the SUSE VM is configured to retrieve its DNS server settings from DHCP. |
|
vnic.provisioner.autoprep.DNSServers |
|
Adapter's list of DNS servers for name look up. |
|
vnic.provisioner.autoprep.DNSSuffixes |
|
Adapter's suffix appended to name for lookup. |
|
vnic.provisioner.autoprep.Gateways |
|
List of Internet gateways available to the interface. |
|
vnic.provisioner.autoprep.IPAddress |
String |
del |
IP address for this adapter. |
vnic.provisioner.autoprep.MACAddress |
String |
del |
MAC address for the interface. Asterisk (*) or not set means to generate a new MAC. |
vnic.provisioner.autoprep.UseDHCP |
Boolean |
del |
If true, new VM retrieves its network settings from a DHCP server and any adapter settings are ignored. If false, then any req uired adapter settings must be defined. |
vnic.provisioner.autoprep.netBIOS |
String |
del |
NetBios options for VM. The values are:
|
vnic.provisioner.autoprep.primaryWINS |
String |
del |
Windows only. Adapter's Primary WINS server. |
vnic.provisioner.autoprep.secondaryWINS |
String |
del |
Windows only. Adapter's Secondary WINS server. |
vnic.provisioner.autoprep.subnetMask |
String |
del |
Subnet mask for this adapter. |
vnic.vbridge |
String |
dynamic, r/o |
The name of the Vbridge used by this vNIC |
vnic.vm |
String |
r/o |
The name of the VM that uses this vNIC |
The following diagram illustrates the relationship between the VNIC object facts and other Grid objects. It also shows the relationship between other discrete object facts and the VNIC object itself.
Figure 4-7 Virtual NIC Fact Junctions
This section includes the following information:
The Repository object has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only.
The following table lists the default facts created by the Orchestration Server for the Repository Grid object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-12 Repository Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
repository.capacity |
Integer |
The maximum amount of storage space available to virtual machines (in megabytes). -1 means unlimited. |
|
repository.description |
String |
Description of repository |
|
repository.efficiency |
Real |
The efficiency coefficient used to calculate the cost of moving VM disk images to and from the repository. This value is multiplied by the disk image size in Mb to determine score (thus 0 means no cost -- very efficient). |
|
repository.enabled |
Boolean |
True if the Repository is enabled (new VM instances can be provisioned) |
|
repository.freespace |
Integer |
Dynamic r/o |
The amount of storage space available to new virtual machines (in megabytes). -1 means unlimited. |
repository.groups |
String[] |
r/o |
The groups to which this repository belongs. |
repository.health |
Boolean |
The health of this repository. True indicates good health |
|
repository.id |
String |
r/o |
The Repository’s unique name |
repository.location |
String |
The Repository's logical root location, for example, / or c:/vm or nas:/vol1 |
|
repository.preferredpath |
String |
The relative path from repository.location to search and place VM files for movement and cloning |
|
repository.provisioner.jobs |
String[] |
The names of the provisioning adapter jobs that can manage VM's on this repository |
|
repository.san.type |
String |
The type of SAN (Adapter specific, iSCSI or Fibre Channel) |
|
repository.san.vendor |
String |
The vendor of SAN (Adapter specific, iqn, npiv, emc). An empty string indicates bind/unbind is a noop. |
|
repository.searchpath |
String[] |
The relative path from repository.location to search for VM configuration files (implicitly includes resource.preferredpath) |
|
repository.type |
String |
The type of repository:
|
|
repository.usedspace |
Integer |
Dynamic r/o |
The amount of storage space used for virtual machines |
repository.vmhosts |
String[] |
Dynamic r/o |
The amount of storage space used for virtual machines |
repository.vmimages |
String[] |
Dynamic r/o |
The list of VM images stored in this repository (aggregated from individual VM fact) |
The following diagram illustrates the relationship between the Repository object facts and other Grid objects. It also shows the relationship between other discrete Grid object facts and the Repository object itself.
Figure 4-8 Repository Fact Junctions
Table 4-13 Repository Group Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
group.id |
String |
r/o |
The name of the group. |
This section includes the following information:
The VNIC object has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only.
The following table lists the default facts created by the Orchestration Server for the Vbridge Grid object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-14 Vbridge Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
vbridge.description |
String |
Description of Vbridge |
|
vbridge.enabled |
Boolean |
True if the vbridge is enabled |
|
vbridge.groups |
String[] |
r/o |
The groups this Vbridge is a member of |
vbridge.health |
Boolean |
True if the vbridge is in a healthy state |
|
vbridge.id |
String |
r/o |
The unique identifier for the Vbridge. |
vbridge.vmhost |
String |
r/o |
The ID of the vmhost containing this vbridge |
vbridge.vnics |
String[] |
dynamic, r/o |
The virtual NICs attached to this vbridge |
The following diagram illustrates the relationship between the Virtual Bridge (Vbridge) object facts and other Grid objects. It also shows the relationship between other discrete Grid object facts and the Vbridge object itself.
Figure 4-9 Virtual Bridge Fact Junctions
Table 4-15 Network Group Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
group.id |
String |
r/o |
The group name. |
group.provisioner.jobs |
String[] |
dynamic, r/o |
Provision adapters with vBridge instances on this network. |
group.provisioner.preferred |
String[] |
Provision adapters explicitly associated with this network. |
|
group.vlanid |
String |
The name of the VLAN accessed by this network (Vbridge group). |
This section includes the following information:
The User object has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only.
The following table lists the default facts created by the Orchestration Server for the User Grid object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-16 User Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
user.account.balance |
Real |
dynamic |
The amount of matrix dollars spent by this user since last reset ($). Useful for implementation of quotas |
user.account.gcycles |
Integer |
dynamic |
The amount of grid time (gcycles) spent by this user since last reset. Useful for implementation of quotas |
user.account.maxspendrate |
Real |
This value is used by the resource scheduler to throttle the rate at which matrix computing cycles are comsumed by the user ($/hr, <=0 turns feature off) |
|
user.account.spendrate |
Real |
dynamic, r/o |
The computed moving average spending over the last hour of user activity ($/hr) |
user.account.time |
Integer |
dynamic |
The amount of wall time spent by this user since last reset. Useful for implementation of quotas |
user.accountinggroup |
String |
The default user group which will be billed for work conducted by this user |
|
user.auth.provider |
String |
The authentication provider to which the user authenticates |
|
user.datagrid.maxhistory |
Integer |
The maximum number job instance directories that should be kept in the datagrid for this user |
|
user.enabled |
Boolean |
True if the user is enabled (allowed to log in and run jobs) |
|
user.env |
Dictionary |
The uploaded and default user environment |
|
user.external.groups |
String[] |
dynamic, r/o |
The external groups (e.g. LDAP) this user is a member ofc |
user.groups |
String |
r/o |
The groups this user is a member of |
user.health |
Boolean |
The health of this user. True indicates good health |
|
user.history.cost.total |
Real |
dynamic, r/o |
The total amount of matrix dollars spent by this user on the matrix |
user.history.gcycles.total |
Integer |
dynamic, r/o |
The total amount of grid time (gcycles) spent by this user on the matrix |
user.history.jobcount |
Integer |
dynamic, r/o |
The total number of jobs a user has ever initiated on the matrix |
user.history.time.total |
Integer |
dynamic, r/o |
The total amount of wall time spent by this user on the matrix |
user.id |
String |
r/o |
The user's login name |
user.jobcount |
Integer |
dynamic |
A counter that records the number of jobs a user has initiated since last reset. Useful for implementation of quotas |
user.jobs.active |
Integer |
dynamic, r/o |
The number of top-level jobs a user has in an active state |
user.jobs.queued |
Integer |
dynamic, r/o |
The number of top-level jobs that are queued for this user |
user.jobs.total |
Integer |
dynamic, r/o |
The total number of top-level jobs a user currently has in the matrix |
user.location.city |
String |
The city of location of the user |
|
user.location.country |
String |
The country of location of the user |
|
user.location.site |
String |
The site where the users work, for example, a building number. |
|
user.location.state |
String |
The state of location of the user |
|
user.name.email |
String |
The user's email address |
|
user.name.first |
String |
The user's first name |
|
user.name.last |
String |
The user's last name |
|
user.online |
Boolean |
dynamic. r/o |
Whether the user is currently logged into the matrix |
user.password |
String |
dynamic |
The user's login password |
user.preemption.enabled |
Boolean |
Allows this user to preempt willing jobs of a priority less than the priority of the running job instance |
|
user.preemption.priority.delta |
Integer |
Indicates the highest job priority band that this user is allowed to preempt resources from (acts as a delta from the current job instance priority). The maximum preemptible priority is always <= user.priority.max |
|
user.priority.default |
Integer |
The numeric representation of the default priority at which this user's jobs will run (1=lowest, 9=highest) |
|
user.priority.default.string |
String |
dynamic, r/o |
The string representation of the default priority at which this user can run a job (matches user.priority.default) |
user.priority.max |
Integer |
The numeric representation of the maximum priority that this user can run a job at (1=lowest, 9=highest) |
|
user.priority.max.string |
String |
dynamic, r/o |
The string representation of the maximum priority at which this user can run a job (matches user.priority.max) |
user.privilegedjobgroups |
String[] |
Allows this user's to run jobs and thus joblets on resources that have reached their slot maximum or are provisioned resources that have been reserved for another user/job. This is primarily to allow discovery jobs to be 'squeezed' onto the resource |
|
user.sessions |
Integer |
dynamic, r/o |
The number of active sessions (connections) a user currently has with the matrix |
user.stealing.enabled |
Boolean |
Allows this user to steal resources running jobs of a priority less than the priority of running job instance |
|
user.stealing.priority.delta |
Integer |
Indicates the highest job priority band that this user is allowed to steal resources from (acts as a delta from the current job instance priority, must be < '0') |
The following diagram illustrates the relationship between the User object facts and other Grid objects. It also shows the relationship between other discrete Grid object facts and the User object itself.
Figure 4-10 User Fact Junctions
Table 4-17 User Group Facts
Fact Name |
Type |
Mode |
Description |
---|---|---|---|
group.account.balance |
Real |
dynamic |
he aggregated cost of work done by members of this group since last reset ($). |
group.account.gcycles |
Integer |
dynamic |
The aggregated amount of grid time (gcycles) spent by members of this group since last reset. |
group.account.time |
Integer |
dynamic |
The aggregated amount of wall time spent by members of this group since last reset |
group.id |
String |
r/o |
The name of the group. |
group.jobcount |
Integer |
dynamic |
The aggregated number of jobs run by members of this group since last reset. |
The Matrix object has an associated set of facts and constraints that define its properties. The Orchestration Server assigns default values to each of the component facts, although they can be changed at any time by the administrator, unless they are read-only.
The following table lists the default facts created by the Orchestration Server for the Matrix Grid object.
NOTE:Facts with mode dynamic are dyamic read/write facts, which means you can dynamically change the values for that fact.
Facts with mode r/o have read-only values, which means they can be viewed but changes cannot be made.
Facts with mode del are deleteable, which means they can be deleted at any time.
Table 4-18 Matrix Facts
Fact Name |
Fact Type |
Mode |
Description |
---|---|---|---|
matrix.activejobs |
Integer |
dynamic, r/o |
The number of active jobs (including child jobs) for this Orchestration Server. |
matrix.clustered |
Boolean |
dynamic, r/o |
Server is configured in a high availabilitly cluster. |
matrix.datagrid.root |
String |
dynamic, r/o |
The root directory of the datagrid. |
matrix.date |
Date |
dynamic, r/o |
The date of this server. |
matrix.date.dayofmonth |
Integer |
dynamic, r/o |
The numerical representation of the current day of the month. |
matrix.date.dayofweek |
String |
dynamic, r/o |
The string representation of the current week day. |
matrix.date.dayofweek.number |
Integer |
dynamic, r/o |
The numerical representation of the current week day. |
matrix.date.month |
String |
dynamic, r/o |
The string representation of the current month. |
matrix.date.month.number |
Integer |
dynamic, r/o |
The numerical representation of the current month. |
matrix.date.year |
Integer |
dynamic, r/o |
The current year. |
matrix.groups.job |
String[] |
dynamic, r/o |
List of Group Names of type Job. |
matrix.groups.repository |
String[] |
dynamic, r/o |
List of Group Names of type Repository. |
matrix.groups.resource |
String[] |
dynamic, r/o |
List of Group Names of type Resource. |
matrix.groups.user |
String[] |
dynamic, r/o |
List of Group Names of type User. |
matrix.groups.vbridge |
String[] |
dynamic, r/o |
List of Group Names of type Vbridge. |
matrix.hostname |
String |
dynamic, r/o |
The server hostname. |
matrix.hostname.full |
String |
dynamic, r/o |
The fully qualified server hostname. |
matrix.id |
String |
r/o |
The name of the matrix |
matrix.loadaverage |
Real |
Indicates the average load of the grid server. A value less than 1.0 is unloaded. |
|
matrix.maxactive |
Integer |
The hard limit for the maximum number of active jobs (including child jobs) allowed on this server at one time. Jobs exceeding this value will be queued. |
|
matrix.maxqueued |
Integer |
The maximum number of queued jobs that will be accepted by this matrix server |
|
matrix.maxtopjobs |
Integer |
The maximum number of active jobs after which new top-level jobs will be queued (child jobs may be be able to start). Should be less than matrix.maxactive. |
|
matrix.physical.hostname |
String |
dynamic, r/o |
The physical server hostname |
matrix.physical.hostname.full |
String |
dynamic, r/o |
The fully qualified physical server hostname. |
matrix.queuedjobs |
Integer |
dynamic, r/o |
The number of queued jobs for this matrix server. |
matrix.time |
Time |
dynamic, r/o |
The time of this server. |
matrix.timeout.jobfinishing |
Integer |
The approximate number of seconds to wait for a job to complete its finishing state. That is, to run any failed/canceled/completed JDL event handlers. |
|
matrix.timezone |
String |
dynamic, r/o |
The string description of the time zone in which this matrix server resides. |
matrix.uptime |
String |
dynamic, r/o |
The time since the last server restart. |
matrix.version |
String |
dynamic, r/o |
The version of this server in form <major>.<minor>.<point>_<buildNumber> |