5 Replies Latest reply on Aug 21, 2012 4:05 PM by DaveStraley

    Using graphs in external support system

    rawk

      I have been doing various integrations between our customer support/billing system and our Orion NPM.  The customer support system is a web application (written on ColdFusion) and we have devised a way of tagging Interfaces in Orion with customer account numbers from the support system.  Through this linkage, we are able to get Orion information into our support system (via the database) in the way of up/down status and the like. 

      So far, I have been able to show relevant traffic graphs, that come from Orion, in our support system.  Once an interface is tagged with a customer's account number, I can then construct the url that will display the graph (ex: http://orionhost/Orion/Netperfmon/Chart.aspx?ChartName=MMAvgBps&Title=&SubTitle=&SubTitle2=&Width=640&Height=0&CustomPollerID=&SampleSize=5M&Period=Last%2024%20Hours&FontSize=1&NetObjectPrefix=I&SubsetColor=&RYSubsetColor=&Printable=true&ShowTrend=False&ResourceID=63&NetObject=I:1675) by simply modifying the InterfaceID.  However, as expected, the graph will only display if the user also has a Solarwinds Orion session open in the browser as well. 

      So, the question is this: Is there a way to retrieve interface graphs on the fly without requiring a browser session?  Possibly through a web service?

        • Re: Using graphs in external support system
          bshopp

          We do have an Orion web services API/SDK for pulling data out of Orion, but you will have to use some tool if you want to chart etc. it in your tool.  See Orion SDK Informationfor more info on the API

            • Re: Using graphs in external support system
              rawk

              It seems silly to have to re-graph the traffic data considering Orion does such a good job at it and it's as simple as putting the chart URL in an <img> tag (once authenticated on the orion web server). 

              I'm just looking for a way to to possibly auto-authenticate the image retrieval without giving the end user an authenticated session on the orion web console.  If I add "AccountID=testname" and "PASSWORD=testpassword" in the image URL, the image will display, but it will also grant the user an authenticated session to the orion web console.

              I have also attempted to instruct my ColdFusion server to download the image so it can be displayed directly from my support system, but the orion web console rejects the request.  It seems to reject due to improper http headers on the request, but I have attempted to duplicate those headers on the internal request to no avail.

                • Re: Using graphs in external support system
                  bshopp

                  I agree, was just throwing out some options.  With 10.1.2 we support native AD integration.  So if you support system support  AD with pass-thru authentication that might work so the users credentials are passed through to Orion and the image does not display if they don't have proper credentials.

                    • Re: Using graphs in external support system
                      rawk

                      So, I finally found a solution, even if it is a bit dirty.

                      WGET  is a command line utility that will basically grab anything off the web  and store it in a file (among many other features).  It will  automatically work out the headers and cookies that were preventing me  from doing this directly in ColdFusion code.  However, since ColdFusion supports sending commands directly to the OS it's running on, I am able to integrate Orion-generated traffic graphs with our support system.

                      Basically, before loading the image in the support system, I use WGET to retrieve the traffic PNG and store it on my webserver.  Then I simply use an <img> tag to display the retrieved image.  And since a separate program is interacting with the Orion web console, the authenticated session required to retrieve the image can remain out of the end user's reach.

                      It's so simple I'm kicking myself that I didn't think of this sooner.