Professional Documents
Culture Documents
Hawkeye: Integration Guide
Hawkeye: Integration Guide
Integration Guide
Version 2.0
September 2016
Copyright and Disclaimer
This publication may not be copied, in whole or in part, without Ixia's consent.
Ixia, the Ixia logo, and all Ixia brand names and product names in this document are
either trademarks or registered trademarks of Ixia in the United States and/or other
countries. All other trademarks belong to their respective owners.
The information herein is furnished for informational use only, is subject to change by
Ixia without notice, and should not be construed as a commitment by Ixia. Ixia assumes
no responsibility or liability for any errors or inaccuracies contained in this publication.
As prescribed by FAR 27.409(b)(4) and in accordance with FAR 52.227-14, please take
notice of the following.
(a) This proprietary computer software and/or software technical data is submitted
with restricted rights. It may not be used, reproduced, or disclosed by the Govern-
ment except as provided in paragraph (b) of this notice or as otherwise expressly
stated in the applicable contract.
(b) This computer software and/or software technical data may be—
(1) Used or copied for use with the computer(s) for which it was acquired, includ-
ing use at any Government installation to which the computer(s) may be trans-
ferred;
(2) Used or copied for use with a backup computer if any computer for which it was
acquired is inoperative;
(4) Modified, adapted, or combined with other computer software, provided that
the modified, adapted, or combined portions of the derivative software incor-
porating any of the delivered, restricted computer software shall be subject to the
same restricted rights;
(5) Disclosed to and reproduced for use by support service Contractors or their sub-
contractors in accordance with paragraphs (b)(1) through (4) of this notice; and
(d) Any other rights or limitations regarding the use, duplication, or disclosure of this
computer software and/or software technical data are to be expressly stated in, or
incorporated in, the applicable contract.
(e) This notice shall be marked on any reproduction of this computer software, in
whole or in part.
(End of notice)
Contacting Ixia
Corporate Ixia Worldwide Headquarters Web site: www.ixiacom.com
Headquarters 26601 W. Agoura Rd. General: info@ixiacom.com
Calabasas, CA 91302
USA Investor Relations: ir@ixiacom.com
+1 877 FOR IXIA (877 367 4942) Training: training@ixiacom.com
+1 818 871 1800 (International) Support: support@ixiacom.com
(FAX) +1 818 871 1805 +1 818 595 2599
sales@ixiacom.com
CONTENTS vi
Hawkeye database xi
Index 110
l Export or collect key information and alarms generated by Hawkeye to third party
system.
l Automate some tasks from third party tools (generate automatic tests for
example)
l Generate customized actions
Based on test results Hawkeye can trigger an Hawkeye SNMP trap to a third party.
The mib is based on SNMPv2 and is easily imported into supervision systems.
Automatic emails can also be sent with content result of aggregated report – these are
user defined and can be scheduled over time (every hour/day/week).
Hawkeye database has been designed to be efficiently integrated to third party report-
ing tools.
Therefore, the test data structure storage consists of a simple structure for storing the
data record.
Each active test in Hawkeye is considered as a single Data record, recorded into Test
Data Record Table.
Test Data Record contains a set of information describing the test result, with inform-
ation about:
l Unique ID
l Test execution time
l Pointer to meta data table containing information
Each Test Data record is independent from each other, and independent from any other
table in the database structure, therefore can be displayed as an independent and flat
view containing all available test data.
see MySQL database Management for more details on the test data record structure.
Hawkeye solution is web based GUI. Some specific functions have been developed to be
available for third party OSS through specific APIs. The global API framework is using
SOAP web services and allows third party to connect to the Hawkeye Web services
through industry standard APIs.
The generic API guide provided is a first version, but global framework for building more
APIs is ready and through custom deliveries and enhancements, Ixia Professional Ser-
vices team can provide some extra functions or dedicated functions through APIs.
SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for
exchanging structured information in the implementation of Web Services in computer
networks. It relies on Extensible Markup Language (XML) for its message format.
The following diagram present high level scheme for the SOAP xml implementation.
SOAP XML Server on the Hawkeye is implemented over PHP php_soap generic exten-
sion. It is therefore compatible with any SOAP client and agnostic about the connecting
technology.
It is installed over the same web server than GUI and is listening on incoming request
on port 80.
It publishes WSDL file format for creating SOAP client connector and publishing all avail-
able APIs.
Hawkeye database
The configuration file for the MySQL server is /etc/my.cnf. This file contains the tuning
parameters for the server as well as defining where the MySQL server stores its data
files.
For larger installations, you should consult Ixia Support to determine if any of the values
here should be modified to accommodate the requirements of the specific installation.
On a Hawkeye system, by default, the data tables for the MySQL server are stored in
/home/mysql_data. The expectation is that, on a system with multiple partitions, the
/home partition will be a large local disk partition. If the installation requires NFS moun-
ted home directories, then these files should be moved to another location on a large
local disk.
[mysqld]
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size=1G
#log-bin = /home/mysql_data/mysql-bin
#expire-logs-days = 14
#sync-binlog = 1
#tmp-table-size = 32M
#max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 1000
thread-cache-size = 100
open-files-limit = 65535
table-definition-cache = 1024
table-open-cache = 2048
innodb-flush-method = O_DIRECT
#innodb-log-files-in-group = 2
#innodb-flush-log-at-trx-commit = 1
#innodb-file-per-table = 1
innodb-buffer-pool-size = 12G
datadir=/home/mysql_data
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
slow-query-log = 1
slow-query-log-file = /home/mysql_data/mysql-slow.log
PHPmyadmin is a web based tool for MySQL administration and advanced configuration.
A lot of information and documentation about this tool can be found at:
http://www.phpmyadmin.net/home_page/docs.php
To access to the Hawkeye Web Portal database administration tool use the following
URL:
http://yourserverIP/phpmyadmin
Username: root
Password: Ixia123
If selected, the complete database will appear and be available, with table size in
entries and disk space.
https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Login as root,
go to users tab
scroll down
----------------------------------------
[MySQLDatabase]
"MySQL_Host" == "localhost"
"MySQL_Database" == "HawkeyePro"
"MySQL_User" == "root"
"MySQL_Password" == "Password0"
"MySQL_UseSSL" == "0"
Login as root,
go to users tab
click edit privileges for ixia and/or root user (ixia user has restricted priviledges).
scroll down
change host from local to "any host" or "Use text field" where a specific originating IP
can be specified.
As noted below the windows firewall port must be opened for inbound request to mysql.
Some advanced modification sql scripts are sometimes required for ad hoc bug fixing or
applying a patch on the server.
Recommendation is to run them through phpmyadmin (command line using mysql tool is
also possible, refer to corresponding mysql user guide for this).
steps:
Hawkeye database has been designed to be efficiently integrated to third party report-
ing tools.
Therefore, the test data structure storage consists of a simple structure for storing the
data record.
Each active test in Hawkeye is considered as a single data record, recorded into Test
Data Record Table.
Test data record contains a set of information describing the test result, with information
about:
l Unique ID;
l Test execution time;
l ID to test_data_record_filters table
l Reason cause;
Each test data record is independent from each other, and independent from any other
table in the database structure, therefore can be displayed as an independent and flat
view containing all available test data.
The test_data_record_filters table contains meta data to more information about node
from, node to, test type etc... each test_data_record is linked to a test_data_record_fil-
ters . A join query on the 2 tables will allow to get explicit information about the con-
tent.
Each Test Data Record may contain a set of KPI (Key Performance Indicators) that will
contain the information about each performance indicator, and value for the data record.
A database table called kpi_result_table contains the information about the KPI. Each
KPI result has to be linked to the test_data_record (using TDR_ID).
another table called kpi_string_information is linked to TDR and contains string kpi typ-
ically used to provide further description of a test result.
One Test Data Record (TDR) can contain as many results as needed in string or integer
format.
l A metric name.
l A pair name (to identify a specific pair in a set of tests, for example when using
COS testing or traffic mix);
l A Status (PASS/FAIL);
The following drawing illustrates the different tables mentioned above and their struc-
ture.
Standard SQL queries shall be made to get these into any reporting, data mining or data
post processing engines.
After installation it might be necessary to adjust the MySQL parameters to your local
server performance to optimize performance
[mysqld]
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size=1G
#log-bin = /home/mysql_data/mysql-bin
#expire-logs-days = 14
#sync-binlog = 1
#tmp-table-size = 32M
#max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 1000
thread-cache-size = 100
open-files-limit = 65535
table-definition-cache = 1024
table-open-cache = 2048
#innodb-log-files-in-group = 2
#innodb-flush-log-at-trx-commit = 1
#innodb-file-per-table = 1
innodb-buffer-pool-size = 12G
datadir=/home/mysql_data
socket=/var/lib/mysql/mysql.sock
user=mysql
[mysqld_safe]
log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
slow-query-log = 1
slow-query-log-file = /home/mysql_data/mysql-slow.log
Most of the settings configured are advanced settings. Recommendations from Ixia
before changing them is recommended.
/home/ixia/Hawkeye/conf/configuration.txt
[MySQLDatabase]
"MySQL_Host" == "localhost"
"MySQL_Database" == "Hawkeye"
"MySQL_User" == "Ixia"
"MySQL_Password" == "Ixia123"
"MySQL_UseSSL" == "0"
"Myresults_SQL_Host" == "localhost"
"Myresults_Database" == "Hawkeye_Result"
"Myresults_SQL_User" == "Ixia"
"Myresults_SQL_Password" == "Ixia123"
"Myresults_SQL_UseSSL" == "0"
[Main]
"IsWebServer" == "1"
"IsTestAgent" == "1"
"WebServerPort" == "80"
"SystemWithDST" == "0"
"maxTimerAgentDaemonSeconds"=="7200"
"maxTimerTestDaemonSeconds"=="60"
"SuperProbeUseRemoteDBCall"=="0"
"RemoteDBCallServer"=="127.0.0.1"
"AllowChassisPortRealTest"=="0"
"PhantomJSPort"=="3013"
"useTimestampTDRID"=="0"
"useExtraFilters"=="0"
"UseOldLicensingScheme"=="0"
"DefaultTimezone"=="America/New_York"
[Installation_Paths]
"server_path"=="/home/ixia/Hawkeye/WebServer/"
"report_path"=="tmp/reports/"
"tmp_img"=="tmp/img"
"saved_report_path"=="SavedReports/"
"chariot_log"=="/home/ixia/Hawkeye/logs/Chariot/"
"server_log"=="/home/ixia/Hawkeye/logs/Hawkeye/"
"ReportHeader"=="images/reportHeader.gif"
"download_dir"=="download/"
"tools_dir"=="/home/ixia/Hawkeye/tools/"
[LogManagement]
"LogDeleteFrequencyMinutes" == "60"
"DbDeleteFrequencyMinutes"=="60"
[ProcessCleanUp]
"ActivateProcessCleanUp" == "1"
"maxDurationTclProcess_seconds" == "1200"
"maxDurationPHPProcess_seconds" == "3600"
[TestAgent]
"TestAgentName" == "TestAgent1"
"TestAgentRealServiceName" == "RealTestAgent1"
"ProbeDefaultLogin" == "root"
"ProbeDefaultPassword" == "Ixia!123"
"UseIxChariotMultiThreading" == "1"
"DualGateway" == "0"
"DisableProbeCapacityCheck" == "0"
"ProbeHealthCheckPort" == "10115"
"prioritizeLeftToCompleteMesh" == "0"
[WebNamespace]
"web_namespace" == "_"
"web_img" == "images"
"web_tmp_img" == "tmp/img"
"web_report_path" == "tmp/reports"
"web_ReportHeader" == "images/reportHeader.gif"
"web_download_dir == "download/"
---------
In this section of the configuration file, the settings for database connection are con-
figured.
MySQL Database
Section “Main”
The parameters located in section “Main” of the configuration file are explained, below.
Main
The parameters located in section “Log management” of the configuration file are
explained, below.
Log Management
DbDeleteFrequencyMinutes 60 deprecated
(deprecated)
In the section “Test Agent”, the configuration for the Hawkeye test agent parameters
must be done. Below is the explanation of each one of them:
Test Agent
Apache Server
The top level configuration file is in /etc/httpd/conf/httpd.conf and defines the overall
server parameters.
This is where default listening port, Max number of servers, threads, etc. are defined.
recommended settings for the prefork.d section of /etc/httpd.conf section for large scale
system:
StartServers 8
MinSpareServers 5
MaxSpareServers 10
ServerLimit 64
MaxClients 56
MaxRequestsPerChild 4000
The modular configuration files for plug-ins or namespaces are defined in the directory
/etc/httpd/conf.d.
This is where the Apache namespace for the Hawkeye system is defined. By default, the
configuration file for the Hawkeye namespace is defined in the config file /etc/ht-
tpd/conf.d/80_hawkeye[_namespace].conf.
When the Hawkeye system is rooted at the top of the Apache namespace, the Docu-
mentRoot configuration value must change in the top level httpd.conf file to point to the
installation directory.
Another configuration file used by Apache and critical to the Hawkeye system is the
/etc/httpd/conf.d/30_fcgid.conf file.
This defines the configuration of the FastCGI engine of the Apache server that is used to
drive the Web-triggered PHP script processing of the Hawkeye system.
This controls limits and allocations imposed on the FastCGI sub-processes invoked by
the Apache server and are used to tune the system as appropriate for the size of the sys-
tem, number of users and number of probes.
This file is likely to require modifications for installations that larger than the default
installation. Users should consult with Ixia Field support for large systems in order to
tune these values for the requirements of the specific installation.
FcgidMaxProcesses 480
FcgidErrorScanInterval 30
FcgidZombieScanInterval 30
FcgidBusyTimeout 60
FcgidBusyScanInterval 30
FcgidIdleScanInterval 30
FcgidIdleTimeout 60
FcgidProcessLifeTime 600
FcgidIOTimeout 60
FcgidTerminationScore 1
FcgidTimeScore 3
Hawkeye Services
The Hawkeye system is currently based on a CentOS 6.6 system which is derived from
the System V standards.
The startup scripts themselves are located in /etc/init.d. Each service has its own script
that accepts a specific set of standard commands to control the service in question.
The most common relevant commands for our purposes are the “start”, “stop” and
“check” options. These start the service, stop the service and check the status of the
service respectively.
Theses commands can either be run either by passing the command to the script as an
option (e.g. “/etc/init.d/httpd start”), or by using the “service” command (e.g. “service
httpd start”), which simply calls the associated script passing the given command to it.
The “/etc/init.d/Hawkeye” service script is a top level script that runs multiple sub-ser-
vices. Operations performed on the top level Hawkeye script will affect all the sub-ser-
vices specific to the Hawkeye system. This script will run the Daemons/run_
HawkeyeDaemons.sh script which will launch and monitor the sub-services, restarting
any that die unexpectedly. While the script is executable, the user should never directly
run this script (or any of the sub-scripts), but instead only control the top level service
using either the “/etc/init.d/Hawkeye <cmd>” method or the “service Hawkeye <cmd>”
method.
This service along with the web server should be stopped when attempting any sort of
low-level maintenance on the database as they both perform many operations on the
database even on a fundamentally idle system.
All of the Apache and Hawkeye services run as user apache with group apache.
When both the Apache and Hawkeye services have been shut down, there should not be
any processes owned by the apache user; if there are, then this process is hung and can
be terminated with extreme prejudice.
Additionally, all files in and below the Hawkeye installation directory (normally
/home/ixia/Hawkeye) should be owned by apache to ensure the Hawkeye system
always has control of Its required files.
The global API framework is using SOAP web services and allows third party to connect
to the Hawkeye Web services through industry standard APIs.
SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for
exchanging structured information in the implementation of Web Services in computer
networks. It relies on Extensible Markup Language (XML) for its message format.
The following diagram present high level scheme for the SOAP xml implementation.
SOAP XML Server on the Hawkeye is implemented over PHP php_soap generic exten-
sion. It is therefore compatible with any SOAP client and agnostic about the connecting
technology.
It is installed over the same web server than GUI and is listening on incoming request
on port 80.
It publishes WSDL file format for creating SOAP client connector and publishing all avail-
able APIs.
/home/ixia/Hawkeye/WebServer/WebServices/Hawkeye.wsdl
https://<serverip>/WebServices/Hawkeye.wsdl
Modification needs to be done in the Hawkeye.wsdl file to get access to the APIs
/home/ixia/Hawkeye/WebServer/WebServices/Hawkeye.wsdl
<soap:address loc-
ation="http://127.0.0.1:80/WebServices/HawkeyeWebService.php"/> <!-- modify path
to server path -->
with your server access (IP or url) and https instead of http if relevant
Example
<soap:address loc-
ation="https://myHawkeyeServerURL/WebServices/HawkeyeWebService.php"/> <!--
modify path to server path -->
Note the version of the API described below is valid with patch on 2.0 EA version - con-
tact support@ixiacom.com for patch application and latest version of API to be avail-
able.
addProbe
this is used to add a new Probe into Hawkeye. This is only relevant for MAnual probes
therefore should not be needed for any Automatic probes (which are recommended).
Parameters
available id are
"2";"Software"
"6";"xr2000"
"7";"xr2000_vm"
"8";"xr_pi"
probeAvailability- integer -
2 for to only
<x:Header/>
<x:Body>
<urn:addProbe>
<urn:probename>?</urn:probename>
<urn:probeip>?</urn:probeip>
<urn:probemgmtip>?</urn:probemgmtip>
<urn:probegroup>?</urn:probegroup>
<urn:probelocation>?</urn:probelocation>
<urn:probetypeid>?</urn:probetypeid>
<urn:probeAvailability>?</urn:probeAvailability>
<urn:AvailableForMesh>?</urn:AvailableForMesh>
</urn:addProbe>
</x:Body>
output
0: failed to add
1: added
checkTestExecutionResultStatus
This is used to find out about the test execution based on a test execution ID that was
created with API or manually on the UI.
This returns the last TDR ID found into the database for this execution ID
Parameters:
<x:Header/>
<x:Body>
<urn:checkTestExecutionResultStatus>
<urn:execID>?</urn:execID>
</urn:checkTestExecutionResultStatus>
</x:Body>
</x:Envelope>
output:
<SOAP-ENV:Envelope xmlns:SOAP-ENV-
V="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Hawkeye"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x-
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC-
C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:checkTestExecutionResultStatusResponse>
<return xsi:type="xsd:string">0</return>
</ns1:checkTestExecutionResultStatusResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
collectAverageKPIresult
this function will allow to return an array of results averaged over time for specific filters
set within the function
fromDate: date to gather data from - format is YYYY-MM-DD HH:mm:ss (example 2016-
02-01 20:07:15)
fromDate: date to gather data to- format is YYYY-MM-DD HH:mm:ss (example 2016-02-
01 20:07:15)
("MODULE","TESTTYPE_ID","TESTTYPE","MESHID","MESHNAME","NODEFROM_
PROBEID","NODETO_PROBEID","STATUS","NODEFROM_IP","NODETO_IP","NODEFROM_
MGMTIP","NODETO_MGMTIP","NODEFROM_NAME","NODETO_NAME","NODEFROM_
LOCATION","NODETO_LOCATION","NODEFROM_PROBE_GROUP","NODETO_PROBE_
GROUP","EXECUTION_USER_ID","EXECUTION_USER_LOGIN","TDR_comment","TEST_
DURATION","TESTEXEC_ID","TESTEXEC_STRING")
("MODULE","TESTTYPE_ID","TESTTYPE","MESHID","MESHNAME","NODEFROM_
PROBEID","NODETO_PROBEID","STATUS","NODEFROM_IP","NODETO_IP","NODEFROM_
MGMTIP","NODETO_MGMTIP","NODEFROM_NAME","NODETO_NAME","NODEFROM_
LOCATION","NODETO_LOCATION","NODEFROM_PROBE_GROUP","NODETO_PROBE_
GROUP","EXECUTION_USER_ID","EXECUTION_USER_LOGIN","TDR_comment","TEST_
DURATION","TESTEXEC_ID","TESTEXEC_STRING")
TestType: filter for test type - leave to blank for not filtering-value of filter - % is wild
card
available values
"Adaptive Video"
"BitTorrent"
"DNS Test"
"DropBox Download"
"DropBox Upload"
"Email"
"Exchange_traffic"
"Flash RTMP"
"FTP Download"
"HTTP Test"
"HTTPS Test"
"ICMP performance"
"ICMP Test"
"IGMP Test"
"Lync Traffic"
"Netflix"
"Network KPI"
"TCP ping"
"Traceroute"
"UDP ping"
"Video Stream"
"Voice bidirectional"
"Voice from->to"
"Wifi Connect"
"Wifi Inspect"
"Youtube"
"Youtube Test"
PairName: available for specific pair name - leave to blank for not filtering-value of filter
- % is wild card
available values
"KPI from->to"
"KPI to->from"
"TCP from->to"
"TCP to->from"
"UDP from->to"
"UDP to->from"
"Voice from->to"
"Voice to->from"
"SG0 COS"
"SG1 COS"
"SG2 COS"
"SG3 COS"
"SG4 COS"
"SG5 COS"
"SG6 COS"
"Stream"
"Audio Stream"
"Video Stream"
"Video from->to"
"DNS"
"COS 1"
"COS 2"
"COS 3"
"Voice"
"UDP transaction"
"TCP transaction"
"Exchange rcv"
"Exchange send"
"HTTP from->to"
"POP3 Response"
"SMTP Response"
Metric: selected metric to filter on - can be left blank for not filtering (not recommended)
-value of filter - % is wild card
"Delay (ms)"
"Jitter (ms)"
"Loss"
"Throughput (kbps)"
"MOS"
"MOS Max"
"MOS Min"
"Number Of Files"
"DNS Availability"
"Availability"
"Jitter (ms)"
"Packet loss"
"Authentication Availability"
"Frame Loss"
"PADI packets"
"PADO packets"
"Loss rate"
"Number Of flows"
"ts duplicates"
"Duplicated packets"
"throughput (kbps)"
"Video Codec"
"ICMP loss"
"Association Attempts"
"Connectivity Status"
<x:Header/>
<x:Body>
<urn:collectAverageKPIresult>
<urn:fromDate>2014-02-01 20:07:15</urn:fromDate>
<urn:toDate>2016-02-01 20:07:15</urn:toDate>
<urn:fromFilterType></urn:fromFilterType>
<urn:fromFilter></urn:fromFilter>
<urn:toFilterType></urn:toFilterType>
<urn:toFilter></urn:toFilter>
<urn:TestType></urn:TestType>
<urn:PairName></urn:PairName>
<urn:Metric></urn:Metric>
</urn:collectAverageKPIresult>
</x:Body>
</x:Envelope>
exemple
ErrorCode,Passed,Failed,myavg-
value,myvaluemin,myvaluemax,StandardDeviation,totalcount,threshold_min,-
threshold_max,threshold_type
0,1061481,287788,3.10,0.00,1280.00,5.97,1349269,5,8,0.0000
<SOAP-ENV:Envelope xmlns:SOAP-ENV-
V="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Hawkeye"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x-
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC-
C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:collectAverageKPIresultResponse>
<return xsi:-
type-
="xsd:string">ErrorCode,Passed,Failed,myavgvalue,myvaluemin,myvaluemax,StandardDeviati
min,threshold_max,threshold_type
0,1061481,287788,3.10,0.00,1280.00,5.97,1349269,5,8,0.0000</return>
</ns1:collectAverageKPIresultResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
collectKPI_result
Use this function to collect the KPI information from a specific test result based on ID
parameter
<x:Header/>
<x:Body>
<urn:collectKPI_result>
<urn:tdrID>1666360</urn:tdrID>
</urn:collectKPI_result>
</x:Body>
</x:Envelope>
result:
0 if no idea is found
Example
"1666360" "Datagrams Out of Order" "15152" "KPI from->to" "Passed" "0" "1" "0"
"1666360" "Delay (ms)" "15152" "KPI from->to" "Passed" "10.43" "100" "0"
"1666360" "Jitter (ms)" "15152" "KPI from->to" "Failed" "9.57" "5" "0"
"1666360" "Jitter Max (ms)" "15152" "KPI from->to" "Failed" "15" "5" "0"
"1666360" "Max loss burst" "15152" "KPI from->to" "Passed" "0" "2" "0"
<SOAP-ENV:Envelope xmlns:SOAP-ENV-
V="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Hawkeye"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x-
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC-
C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:collectKPI_resultResponse>
"1666360" "Datagrams Out of Order" "15152" "KPI from->to" "Passed" "0" "1" "0"
"1666360" "Delay (ms)" "15152" "KPI from->to" "Passed" "10.43" "100" "0"
"1666360" "Jitter (ms)" "15152" "KPI from->to" "Failed" "9.57" "5" "0"
"1666360" "Jitter Max (ms)" "15152" "KPI from->to" "Failed" "15" "5" "0"
"1666360" "Max loss burst" "15152" "KPI from->to" "Passed" "0" "2" "0"
</return>
</ns1:collectKPI_resultResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
collectTDR_result
will collect test data result information about test ID
parameter
<x:Header/>
<x:Body>
<urn:collectTDR_result>
<urn:tdrID>1666360</urn:tdrID>
</urn:collectTDR_result>
</x:Body>
</x:Envelope>
example:
" "N2N" "5129" "Network KPI" "0" "8" "9" "ip-10-1-1-139" "ip-10-1-1-143" "ip-10-1-1-
139" "ip-10-1-1-143" "1" "sysadmin" "15" "74" "webservice"
<SOAP-ENV:Envelope xmlns:SOAP-ENV-
V="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Hawkeye"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x-
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC-
C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:collectTDR_resultResponse>
" "N2N" "5129" "Network KPI" "0" "8" "9" "ip-10-1-1-139" "ip-10-1-1-143" "ip-10-1-1-
139" "ip-10-1-1-143" "1" "sysadmin" "15" "74" "webservice"
</return>
</ns1:collectTDR_resultResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
configureN2NListExecution
use this function to setup a new test for Node to Node (prefer to configure TestEx-
ecution)
If using list of probes, you can create one to one or many to many combinations of tests
parameters:
Includes
"Network KPI"
"Adapative Video"
"Flash RTMP"
"Netflix"
"Youtube"
"Lync Traffic"
"Video Stream"
"Voice from->to"
"Voice bidirectional"
"Exchange_traffic"
"HTTP Test"
"HTTPS Test"
the probe needs to have an existing and active probe configured into db otherwise will
be ignored
Example : probe1,probe2
the probe needs to have an existing and active probe configured into db otherwise will
be ignored
Example : probe3,probe4
nodefrom: probe1,probe2
nodeto: probe3,probe4
probe1->probe3
probe1->probe4
probe2->probe3
probe2->probe4
probe1->probe3
probe2->probe4
Note: leave empty for starting now or for immediate one shot
following table describe the parameter. for each test type, the options need to be put in
the exact order as detailed in the table below.
IF there is an associated pair (pair_id is not null), the name must be entered with fol-
lowing format in API:
ParameterName|SPECIFICPAIR|pair_id
arrayOptionsNameString
packetsize,QOS,bitrate|SPECIFICPAIR|15161,bitrate|SPECIFICPAIR|15162
arrayOptionsValueString
1400,EF,20000,40000
will set packetsize to 1400, QOS to EF, UDP from->to 20000kbps, UDP to->from to
40000kbps
"Exchange_traffic";"numberofpairs";"Number of Users";"0";NULL
"Netflix";"QOS";"DSCP Setting";"0";NULL
"Youtube";"QOS";"DSCP Setting";"0";NULL
1-email
2-snmp
FailedAlarm-
ErrorAlarm-
StatusChangeAlarm-
<x:Header/>
<x:Body>
<urn:configureN2NListExecution>
<urn:TestType>Network KPI</urn:TestType>
<urn:NodeFrom>AWSprivate2</urn:NodeFrom>
<urn:NodeTo>AWSprivate4,AWSprivate3,AWSprivate5</urn:NodeTo>
<urn:OneToOne>0</urn:OneToOne>
<urn:Frequency>0</urn:Frequency>
<urn:EnforceSchedule>0</urn:EnforceSchedule>
<urn:mystartdate></urn:mystartdate>
<urn:myenddate></urn:myenddate>
<urn:arrayOptionsNameString>null</urn:arrayOptionsNameString>
<urn:arrayOptionsValueString>null</urn:arrayOptionsValueString>
<urn:thresholdArrayString>null</urn:thresholdArrayString>
<urn:AlarmType>0</urn:AlarmType>
<urn:FailedAlarm>0</urn:FailedAlarm>
<urn:ErrorAlarm>0</urn:ErrorAlarm>
<urn:StatusChangeAlarm>0</urn:StatusChangeAlarm>
<urn:EmailAddress></urn:EmailAddress>
<urn:TESTEXEC_STRING>webservice</urn:TESTEXEC_STRING>
<urn:mytestduration>15</urn:mytestduration>
</urn:configureN2NListExecution>
</x:Body>
</x:Envelope>
output:
response with array of executed test paths and Test execution ID if the test could be
added to the execution list
Example of output
(AWSprivate2,AWSprivate4,74),(AWSprivate2,AWSprivate3,75),
(AWSprivate2,AWSprivate5,76)
<SOAP-ENV:Envelope xmlns:SOAP-ENV-
V="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Hawkeye"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x-
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC-
C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:configureN2NListExecutionResponse>
<return xsi:type="xsd:string">(AWSprivate2,AWSprivate4,74),
(AWSprivate2,AWSprivate3,75),(AWSprivate2,AWSprivate5,76)</return>
</ns1:configureN2NListExecutionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
configureTestExecution
use this function to setup a new test for Node to Node or Real service
parameters:
Type:
Includes
"Network KPI"
"Adapative Video"
"Flash RTMP"
"Netflix"
"Youtube"
"Lync Traffic"
"Video Stream"
"Voice from->to"
"Voice bidirectional"
"Exchange_traffic"
"HTTP Test"
"HTTPS Test"
"BitTorrent"
"DNS Test"
"DropBox Download"
"DropBox Upload"
"Email"
"FTP Download"
"ICMP performance"
"ICMP Test"
"IGMP Test"
"TCP ping"
"Traceroute"
"UDP ping"
"Wifi Connect"
"Wifi Inspect"
"Youtube Test"
0 - nodefrom and nodeto will be used for node to node, Meshid ignored
the probe needs to have an existing and active probe configured into db otherwise will
be ignored
Example : probe1,probe2
Nodeto: node List to use to start the test - ignored for real services
the probe needs to have an existing and active probe configured into db otherwise will
be ignored
Example : probe3,probe4
Note: leave empty for starting now or for immediate one shot
following table describe the parameter. for each test type, the options need to be put in
the exact order as detailed in the table below.
IF there is an associated pair (pair_id is not null), the name must be entered with fol-
lowing format in API:
ParameterName|SPECIFICPAIR|pair_id
arrayOptionsNameString
packetsize,QOS,bitrate|SPECIFICPAIR|15161,bitrate|SPECIFICPAIR|15162
arrayOptionsValueString
1400,EF,20000,40000
will set packetsize to 1400, QOS to EF, UDP from->to 20000kbps, UDP to->from to
40000kbps
"Exchange_traffic";"numberofpairs";"Number of Users";"0";NULL
"Netflix";"QOS";"DSCP Setting";"0";NULL
"Youtube";"QOS";"DSCP Setting";"0";NULL
"BitTorrent";"DestinationServer";"Torrent Name";"0";NULL
"BitTorrent";"magnet";"Torrent link";"0";NULL
"BitTorrent";"duration";"Test duration";"0";NULL
"Email";"email";"Email Address";"0";NULL
"Email";"authuser";"Mail User";"0";NULL
"Email";"authpass";"Mail Password";"0";NULL
"FTP Download";"Password";"Password";"0";NULL
"ICMP Test";"PingInterval";"Interval";"0";NULL
"ICMP Test";"PingCount";"Count";"0";NULL
"TCP ping";"PingInterval";"Interval";"0";NULL
"TCP ping";"PingCount";"Count";"0";NULL
"Traceroute";"DestinationServer";"Destination Server";"0";NULL
"Traceroute";"Timeout";"Timeout (sec)";"0";NULL
"Traceroute";"QOS";"DSCP Setting";"0";NULL
"Traceroute";"TraceRouteProtocol";"Protocol";"0";NULL
"Traceroute";"ip_version";"ip protocol";"0";NULL
"UDP ping";"PingInterval";"Interval";"0";NULL
"UDP ping";"PingCount";"Count";"0";NULL
"Wifi Connect";"SSID";"SSID";"0";NULL
"Wifi Connect";"BSSID";"BSSID";"0";NULL
"Wifi Connect";"Password";"Password";"0";NULL
"Wifi Inspect";"DestinationServer";"SSID";"0";NULL
1-email
2-snmp
FailedAlarm-
ErrorAlarm-
StatusChangeAlarm-
<x:Header/>
<x:Body>
<urn:configureTestExecution>
<urn:Type>?</urn:Type>
<urn:TestType>?</urn:TestType>
<urn:isMesh>?</urn:isMesh>
<urn:myMesh>?</urn:myMesh>
<urn:NodeFrom>?</urn:NodeFrom>
<urn:NodeTo>?</urn:NodeTo>
<urn:Frequency>?</urn:Frequency>
<urn:EnforceSchedule>?</urn:EnforceSchedule>
<urn:mystartdate>?</urn:mystartdate>
<urn:myenddate>?</urn:myenddate>
<urn:arrayOptionsNameString>?</urn:arrayOptionsNameString>
<urn:arrayOptionsValueString>?</urn:arrayOptionsValueString>
<urn:thresholdArrayString>?</urn:thresholdArrayString>
<urn:AlarmType>?</urn:AlarmType>
<urn:FailedAlarm>?</urn:FailedAlarm>
<urn:ErrorAlarm>?</urn:ErrorAlarm>
<urn:StatusChangeAlarm>?</urn:StatusChangeAlarm>
<urn:EmailAddress>?</urn:EmailAddress>
<urn:TESTEXEC_STRING>?</urn:TESTEXEC_STRING>
<urn:mytestduration>?</urn:mytestduration>
</urn:configureTestExecution>
</x:Body>
</x:Envelope>
output:
<SOAP-ENV:Envelope xmlns:SOAP-ENV-
V="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Hawkeye"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x-
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC-
C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:configureTestExecutionResponse>
<return xsi:type="xsd:string">0</return>
</ns1:configureTestExecutionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
findProbeIDfromName
find probe ID from inputting name
<x:Header/>
<x:Body>
<urn:findProbeIDfromName>
<urn:ProbeName>?</urn:ProbeName>
</urn:findProbeIDfromName>
</x:Body>
</x:Envelope>
output
API will return 0 if probe is not found, integer with ID if the probe is found.
<SOAP-ENV:Envelope xmlns:SOAP-ENV-
V="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Hawkeye"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x-
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC-
C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:findProbeIDfromNameResponse>
<return xsi:type="xsd:string">0</return>
</ns1:findProbeIDfromNameResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
- 0 (default): local authentication only. No active directory will be used, no active dir-
ectory server will be used.
- 1: use active directory server with following rule - only existing local users will use the
active directory. That means Hawkeye administrator needs to configure the user in
Hawkeye with same name as defined in Active Directory server and set the user as a
"remote" user - ie not local.
- 2: user active directory with following rule - at first login, a valid Active directory user
would be able to login and a user will be created into Hawkeye database. The local user
will be created as a remote login user (so checked against the Active directory server)
and with Administration rights in the Administrator group.
Note: when using active directory server the mode 1 is recommended as it allows to
keep control of the access and rights on the platform.
LDAP server address: is the address or URL to reach LDAP or Active Directory server
Edit the user that needs to be enabled with Active Directory authentication.
For each authentication, user credentials will be checked against the LDAP server if
LDAP server mode is configured.
Index
C
contacting Ixia iv
Ixia, contacting iv