cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post
Product Manager
Product Manager

Orion SDK Information

Please go here for the most updated Orion SDK information.

Thank you for your interest in the SDK.

You can download the SDK 1.10 here (SDK 1.9 here / SDK 1.8 here / SDK 1.7 here / SDK 1.6 here / v1.5 here / SDK v1.4 here)

What's new in SDK v1.9?

  • New chapter added documenting the new NTA 4.0 Entity Model with typical query examples.
  • New sample script for adding a Windows node for monitoring using WMI.
  • Bugfixes to SWQL Studio and the PowerShell cmdlets.

What’s new in SDK v1.8?

  • New sample PowerShell script:
    • CopyNodes
  • Additional documentation:
    • list of functions supported by SWQL
    • the RETURN XML RAW/AUTO clause
  • Schema reference docs for updated for product releases

What’s new in SDK v1.7?

  • Update documentation reflecting technical changes made in Orion Platform 2013.1, NPM 10.5, SAM 5.5, and IPAM 4.0 (summarized in a new "What is new" chapter in Technical Reference document instal
  • Documentation for the REST/JSON endpoint for the Information Service
  • Improvements and bug fixes in SDK tools
  • New sample scripts demonstrating:
    • Using UDT to shut down a switch port
    • Connecting to the Information Service from Python

What’s new in SDK v1.6?

  • Updated documentation reflecting technical changes made in Orion Platform 2012.2, NPM 10.4, and SAM 5.0 (summarized in a new "What is new" chapter in Technical Reference document installed)
  • Improvements in SDK tools, including bulk update and bulk delete capability for SwisPowerShell.
  • New sample scripts demonstrating:
    • Downloading a network device configuration file using NCM
    • Management of SAM application monitoring

What's new in SDK v1.5?

  • Updated documentation reflecting technical changes made in Orion Platform 2012.1, NPM 10.3 (summarized in a new "What is new" chapter in Technical Reference document installed)
  • Improvements in SDK tools
  • New samples demonstrating the other SWIS API use. in particular, PowerShell samples demonstrating:

Adding a node

Adding an interface

Discovering interfaces

Setting a custom property

Configuring Orion Groups

This package contains:

  • SWQL Studio: An application for browsing the Information Service schema and running queries.             
  • Orion SDK.pdf: The documentation for the SDK. Includes an explanation of the purpose of the SolarWinds Information Service, a description of its query language, SWQL, and walkthroughs of the VBClient and JavaClient sample applications.             
  • VBClient:A sample application written in Visual Basic.NET that connects to SWIS over HTTPS, finds the most-recently-triggered unacknowledged alert, and acknowledges it. A project file is provided for building this sample in Visual Studio 2008.
  • JavaClient: A sample application written in Java that connects to SWIS over HTTPS, finds the most-recently-triggered unacknowledged alert, and acknowledges it. A project file is provided for loading this sample in Eclipse. There is also a build.xml file for building the sample with Ant.
  • PerlClient: A sample application written in Perl that connects to SWIS over HTTPS, and contains example calls of SWIS API.
  • PowerShell samples: A set of PowerShell sample scripts containing example calls of SWIS API.
  • SwisInvoke.exe: A tool for invoking SWIS verbs (commands) from the Windows command line.
  • Reference documentation for the SWIS schema: In HTML format.         
  • SWIS Snapin for Windows PowerShell:A component that provides cmdlets you can use to access SWIS from Windows PowerShell, including querying data and invoking verbs. This requires a manual installation step to use. See the Orion SDK.pdf document for details on this

A couple of notes regarding the SDK.

  1. All support will be handled via the thwack SDK forum, which can be found here.
  2. If you call customer service regarding an SDK issue or question you will be directed to thwack, so please do not call customer support.

SolarWinds Orion SDK Team

137 Replies

Hi,

Server types are just how you are authenticated to connected to Orion Information Service. You can use any type of authentication based on the need and configuration. But provided below the easiest to connect to swql studio.

For connecting to local server (if the product is installed there) :

Server : localhost

Server type : Orion (v3) Certificate

For connecting to a different server :

Server : "Server name"

Server Type : Orion (V3)

0 Kudos

Been trying to get IsNull to work under both 1.8 and now 1.9, but I'm getting an error.  I'm curious if its actually working or not.  Most keywords in SWQL Studio (like SELECT, FROM) end up being highlighted in blue.  When I type in IsNull, it stops being blue when I get to the "IsN" point.  When I type in the "N" the whole word I'm typing in goes from black to blue.  I couldn't think of any keywords that start with "IS" (except for maybe "IS" itself), so I started fooling around and the only combination that keeps the text highlighted blue is "ISA", but nothing beyond that?

So, I'm curious, is IsNull() working?  Is it a problem that it isn't staying highlighted in the SWQL studio?

And just out of curiosity, why is "ISA" highlighted?

0 Kudos

SWQL Studio has a hard-coded list of keywords to highlight. ISNULL isn't in the list, though it should be. Don't read too much into it. ISNULL works fine with SWIS.

"ISA" is a keyword that gets highlighted because it is in SWQL Studio's list. This is an operator in SWQL that doesn't really have a direct equivalent in SQL. It's a boolean operation on types. It tells you whether the left operand is the same as or a subtype (direct or indirect) of the right operand. Example usage:


SELECT FullName

FROM Metadata.Entity

WHERE FullName ISA 'System.ManagedEntity'

0 Kudos
Level 13

The Python sample code included with the SDK has some typo-bugs in it: .json() is a method of the request object, not an attribute, so ()s are required but not included. I posted a fixed, slightly more friendly version here:

https://gist.github.com/jayswan/9239153

Thanks, Jay! Mind if I use this in the next SDK release?

0 Kudos

Please do! I was thinking about adding an option to print the details of the request object in each example. I'll update the gist as I have time, but feel free to do whatever you like with it.

0 Kudos
Level 8

I have another question - do you have anywhere I can find any PHP examples?

0 Kudos

I don't know of any PHP examples for this. I know very little about PHP and nothing about the application you are working in, so I'm hesitant to give advice. The JSON API is pretty straightforward, so you should be able to use any general purpose HTTP client to work with it. Surprisingly (to me, anyway), Stack Overflow users seem to recommend just shelling out to curl.exe for making REST calls from PHP.

tdanner - I got it working in PHP If anybody asks for a PHP example, feel free to give them this code snippet:

  ini_set('display_errors', 'On');

  error_reporting(E_ALL);

  $endpoint = "https://localhost:17778/SolarWinds/InformationService/v3/Json/Query";

  $post_data = array(

  'query' => "SELECT TOP 1 DisplayName, DetailsUrl FROM Orion.Nodes"

  );

  $strdata = json_encode($post_data);

  $ch = curl_init($endpoint);

  curl_setopt($ch, CURLOPT_POST, 1);

  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_TIMEOUT, 30);

  curl_setopt($ch, CURLOPT_POSTFIELDS, $strdata);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_USERPWD, "admin:");

  //curl_setopt($ch, CURLOPT_HEADER, 1); // This will output response headers

  curl_setopt($ch, CURLOPT_HTTPHEADER, array(

    'Content-Type: application/json',

    'Content-Length: ' . strlen($strdata)

  ));

  $result = curl_exec($ch);

  exit("Result: {$result}");

0 Kudos

Thanks for sharing!

Where can I find more documentation on the JSON REST API for querying?

0 Kudos

It's in the "Orion SDK.pdf" document installed with the SDK. Linked on the start menu as "Technical Reference".

0 Kudos

Thanks, I found it I'm new to both the Orion system & its terminology - could you point me to where in the document it talks about how to receive, let's say, bandwidth information on Interface ID 117 (the URL to view it in the browser is:

/Orion/Interfaces/InterfaceDetails.aspx?NetObject=I:117&view=InterfaceDetails

)

0 Kudos

Sure. Interface traffic history is in the Orion.NPM.InterfaceTraffic entity. You can query it like this:

SELECT DateTime, InAveragebps, InMinbps, InMaxbps, InTotalBytes, InTotalPkts, InAvgUniCastPkts, InMinUniCastPkts, InMaxUniCastPkts, InAvgMultiCastPkts, InMinMultiCastPkts, InMaxMultiCastPkts, OutAveragebps, OutMinbps, OutMaxbps, OutTotalBytes, OutTotalPkts, OutAvgUniCastPkts, OutMaxUniCastPkts, OutMinUniCastPkts, OutAvgMultiCastPkts, OutMinMultiCastPkts, OutMaxMultiCastPkts, TotalBytes, TotalPackets, Averagebps, OutPercentUtil, InPercentUtil, PercentUtil

FROM Orion.NPM.InterfaceTraffic

WHERE InterfaceID=117 AND DateTime > GetUtcDate()-1

That will return all traffic samples in the last 24 hours. You can adjust the WHERE clause to select a particular time range.

0 Kudos

Thanks! Where can I find a list of properties like this? I couldn't find anything in the Orion SDK.pdf. Is there somewhere I can find a list of each Object Model and its properties?

0 Kudos

In the start menu under "SolarWinds Orion SDK", there's a link called "Schema Documentation (v3.0)" that has a list of the entity types and their properties. You can also run SWQL Studio, connect to Orion, and explore the object model this way.

0 Kudos

Thanks. I can't seem to figure out how this number was calculated (average Transmit / Receive Bps Percentile 95%): 95_percentile.png Can you give any insight?

0 Kudos

That's what I figured I'd end up going with (cURL is PHP's main way of executing HTTP Requests) - I just have to figure out how to communicate with the API, heh.

0 Kudos

curl -v -k -u admin: -X POST -H "Content-Type: application/json" -d @postdata.json https://localhost:17778/SolarWinds/InformationService/v3/Json/Query

Where the file postdata.json contains something like this: { "query": "SELECT TOP 1 DisplayName, DetailsUrl FROM Orion.Nodes" }

0 Kudos

Hmm. That seemed to work:

$ curl -v -k -u admin: -X POST -H "Content-Type: application/json" -d @postdata.                                  json https://10.10.10.6:17778/SolarWinds/InformationService/v3/Json/Query

* STATE: INIT => CONNECT handle 0x60002d3f0; line 1011 (connection #-5000)

* Hostname was NOT found in DNS cache

*   Trying 10.10.10.6...

* Adding handle: conn: 0x6000697d0

* Adding handle: send: 0

* Adding handle: recv: 0

* Curl_addHandleToPipeline: length: 1

* 0x60002d3f0 is at send pipe head!

* - Conn 0 (0x6000697d0) send_pipe: 1, recv_pipe: 0

* STATE: CONNECT => WAITCONNECT handle 0x60002d3f0; line 1058 (connection #0)

* Connected to 10.10.10.6 (10.10.10.6) port 17778 (#0)

* successfully set certificate verify locations:

*   CAfile: /usr/ssl/certs/ca-bundle.crt

  CApath: none

* SSLv3, TLS handshake, Client hello (1):

* STATE: WAITCONNECT => PROTOCONNECT handle 0x60002d3f0; line 1171 (connection #                                  0)

* SSLv3, TLS handshake, Server hello (2):

* SSLv3, TLS handshake, CERT (11):

* SSLv3, TLS handshake, Server finished (14):

* SSLv3, TLS handshake, Client key exchange (16):

* SSLv3, TLS change cipher, Client hello (1):

* SSLv3, TLS handshake, Finished (20):

* SSLv3, TLS change cipher, Client hello (1):

* SSLv3, TLS handshake, Finished (20):

* SSL connection using AES128-SHA256

* Server certificate:

*        subject: CN=SolarWinds-Orion

*        start date: 2013-10-08 19:59:53 GMT

*        expire date: 2039-12-31 23:59:59 GMT

*        issuer: CN=SolarWinds-Orion

*        SSL certificate verify result: self signed certificate (18), continuing                                   anyway.

* STATE: PROTOCONNECT => DO handle 0x60002d3f0; line 1190 (connection #0)

* Server auth using Basic with user 'admin'

> POST /SolarWinds/InformationService/v3/Json/Query HTTP/1.1

> Authorization: Basic YWRtaW46

> User-Agent: curl/7.34.0

> Host: 10.10.10.6:17778

> Accept: */*

> Content-Type: application/json

> Content-Length: 68

>

* upload completely sent off: 68 out of 68 bytes

* STATE: DO => DO_DONE handle 0x60002d3f0; line 1263 (connection #0)

* STATE: DO_DONE => WAITPERFORM handle 0x60002d3f0; line 1384 (connection #0)

* STATE: WAITPERFORM => PERFORM handle 0x60002d3f0; line 1395 (connection #0)

* HTTP 1.1 or later with persistent connection, pipelining supported

< HTTP/1.1 200 OK

< Content-Length: 118

< Content-Type: application/json

* Server Microsoft-HTTPAPI/2.0 is not blacklisted

< Server: Microsoft-HTTPAPI/2.0

< Date: Mon, 10 Feb 2014 20:41:45 GMT

<

* STATE: PERFORM => DONE handle 0x60002d3f0; line 1565 (connection #0)

* Connection #0 to host 10.10.10.6 left intact

{"results":[{"DisplayName":"DC1SWC01 - Core Switch","DetailsUrl":"/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N:1"}]}

Thanks for that example. I'll see if I can translate it to PHP.

Why 17778 Port, with wireshark, when i connect thanks to "SWQL Studio" it's 17777 Port.

0 Kudos