ActiveXperts Network Component Xen Object
The Citrix Xen object of the ActiveXperts Network Component allows you to retrieve performance data from a Citrix Xen host and its virtual machines. The following operations are provided through the Xen interfaces:
- Connect to a Citrix Xen host
- Retrieve performance values from a Citrix Xen host, including: CPU Usage, Memory Usage, Network Traffic, Disk Usage and Status Info of a Virtual Machine
- Retrieve a list of Virtual Machines hosted by the Citrix Xen server
- Retrieve performance values for each Virtual Machine hosted by the Citrix Xen host, including: CPU Usage, Memory Usage, Network Traffic and Disk Usage
The Xen object is part of the Network Component. Overview of all Network Component objects:
DnsServer & DnsRecord - Ftp & FtpFile - Http - Icmp - IPtoCountry - Msn - Ntp - Radius - Rsh - Scp - SFtp - Ssh - SnmpManager - SnmpTrapManager - SnmpMibBrowser - Tcp - Tftp - TraceRoute - Udp - Xen - Wake-on-LAN - Xen (Citrix)
Xen sample code
VBScript sample: Monitor a Citrix Xen host
' Create Xen and ASConstants instances
Set objXen = CreateObject( "AxNetwork.Xen" )
Set objConstants = CreateObject( "AxNetwork.ASConstants" )
' Set ESXi host information
objXen.Server = "myesxi-host"
objXen.ServerAccount = "root"
objXen.ServerPassword = "topsecret"
' Initialize
objXen.Initialize
WScript.Echo "Initialize: " & objXen.LastError
If( objXen.LastError <> 0 ) Then
WScript.Quit
End If
' Connect
objXen.Connect
WScript.Echo "Connect: " & objXen.LastError
If( objXen.LastError <> 0 ) Then
objXen.Shutdown
WScript.Quit
End If
' Iterate over all Counter ID's on the Xen Host
WScript.Echo "Performance counter values on host " & objXen.Server & " :"
nCounter = objXen.GetFirstCounterID()
While ( objXen.LastError = 0 )
strCounter = objXen.GetCounterDescription( nCounter )
If ( objXen.IsContextAllowed( nCounter ) ) Then
strContext = "0"
Else
strContext = "1"
End If
WScript.Echo strCounter & ":" & objXen.GetPerfData("", nCounter, strContext)
nCounter = objXen.GetNextCounterID()
WEnd
' Disconnect
objXen.Disconnect
' Shutdown
objXen.Shutdown
WScript.Echo "Ready."
Visual C# .NET sample: Show performance counters for each Xen host and all Virtual Machines
namespace XenDemo
{
class XenDemo
{
[STAThread]
static void Main(string[] args)
{
AxNetwork.Xen objXen = new AxNetwork.Xen(); // Create instance of COM Object
string strVirtualMachine;
System.Int32 nCounter = 0;
// Set ESXi host information
objXen.Server = "myesxi-server"
objXen.ServerAccount = "root";
objXen.ServerPassword = "topsecret";
// Initialize
objXen.Initialize();
Console.WriteLine("Initialize: " + objXen.LastError );
if (objXen.LastError != 0)
return;
// Connect
objXen.Connect();
Console.WriteLine("Connect: " + objXen.LastError );
if (objXen.LastError != 0)
return;
// Show Counters for all Xen Virtual Machines
strVirtualMachine = objXen.GetFirstVirtualMachine();
while (objXen.LastError == 0)
{
// Iterate over all Counter ID's on the Virtual Machine
Console.WriteLine("\r\nCounter values for VM " + strVirtualMachine + ": ");
nCounter = objXen.GetFirstCounterID();
while (objXen.LastError == 0)
{
strCounter = objXen.GetCounterDescription(nCounter);
strContext = objXen.IsContextAllowed(nCounter) ? "0" : "1";
Console.WriteLine(" " + strCounter + ": " +
objXen.GetPerfData(strVirtualMachine, nCounter, strContext) + " "
+ objXen.GetCounterUnits(nCounter));
nCounter = objXen.GetNextCounterID();
}
strVirtualMachine = objXen.GetNextVirtualMachine();
}
// Disconnect
objXen.Disconnect();
// Shutdown
objXen.Shutdown();
Console.WriteLine("\nReady.");
}
}
}
You can download the full samples here.
