Quantcast
Channel: THWACK: All Content - Orion SDK
Viewing all 2677 articles
Browse latest View live

Help with NCM config search returning error port 17777/orion/ncm/businesslayer...

$
0
0

I am following the NCM config search guide here (https://github.com/solarwinds/OrionSDK/wiki/NCM-Config-Search) to try and use the API to search for things. Right now I just have a very simple query to test the API out, but I'm getting an error as seen in the error.txt attachment.

 

Brief error:

"Message": "There was no endpoint listening at net.tcp://solarwinds_address:17777/orion/ncm/businesslayer that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details."

 

I believe my parameters are correct with no errors. Full cURL generated code from Postman is attached, but in a nutshell I'm doing:


POST to URL - https://solarwinds_address:17778/SolarWinds/InformationService/v3/Json/Invoke/Cirrus.ConfigArchive/ConfigSearch

Body content type JSON - ["username", null, null, false, false, null, null]

 

Port 17777 is verified to be listening as seen by running netstat on the server and by running nmap on my machine to verify reachability on that port. I also restarted all SWIS services on the server, but I still get the same error. I can run other API calls with no problems. It's just the config search that is returning this weird error I can find nothing on. I've tried multiple config search queries, but get the same error for all of them. I found where someone else ran into this same issue a few years ago, but there was no resolution found (Orion server - Communicating error - SOAP 17777 ). Does anyone know a solution for this?


API/SDK for a REST call to update Component settings

$
0
0

Is there a way using the SWQL REST calls to update the Component Settings for a Application monitor assigned to a node?

 

Example:

I have a Node and I have created an Application Monitor for HTTP.  The URL and proxy settings need to be updated for the Node, however, I would like to do this via an API/SDK.  The GUI interface is not an option.

Changing a Performance Counter Instance Name, Overriding a Template

$
0
0

Hey all,

 

I currently have a template that is applied to multiple servers to collect windows performance counter information for some custom software.  The issue is, the instance names changes on a server, and there can be more than one instance of the counters on each server (each with a unique name).  I'm looking for a way to override the template's instance name setting and update each individual component's Instance.  Alternatively, I suppose I could use PowerShell to retrieve which counters and instances exist on each server (Already have the ability to obtain that information via script) and then hopefully use Invoke-SwisVerb to create individual templates, applications and components - but I'm not sure where to start with scripting the creation of solarwinds portion.

 

From enacting the change manually via the web console and then running a SWQL query, I can see that the overriding setting is held in Orion.APM.ComponentSetting with a Key of "Instance" and a "Value" of the instance name I entered (Along with ComponentID for the individual component of the application, as well as ValueType = 0 and Required = False)

 

I'm not finding any Swis Verbs to invoke in order to update a specific component like this - does anyone have any guidance?

 

I know the above is rather vague - if I can provide more information to facilitate a solution, please let me know.

Using custom SWQL to search for subnets

$
0
0

Hi there,

 

I notice after using the IPAM 4.3.2, the custom SWQL query is returning multiple results (repeated results). I did a subnet name search (refer to capture 1). It will display 181 results with the same subnet name. In the IP search, it will only return 1 search (refer to capture 2). I the SWQL queries are as below

 

Custom SWQL Query:

SELECT Address, CIDR, FriendlyName as DisplayName, VLAN FROM IPAM.Subnet WHERE CIDR > 0 AND GroupTypeText = 'Subnet';

 

Search SWQL Query:

SELECT Address, CIDR, FriendlyName as DisplayName, VLAN FROM IPAM.Subnet WHERE (Address LIKE '%${SEARCH_STRING}%' OR FriendlyName LIKE '%${SEARCH_STRING}%') AND CIDR > 0 AND GroupTypeText = 'Subnet';

 

Anyone encounter similar issue while using the custom SWQL and how can we solve this issue?

 

Thank you.

SWQL Query returning NULL results

$
0
0

Hi,

 

I'm after some guidance, I'm building a SWQL query to return the Status of UPS's from a Custom Poller and I'm getting duplicate rows returned with the additional rows containing a NULL value and I can't work out where it is coming from.

 

The query is.

 

select distinct n.caption as [UPS]

 

,case

when cpa.CustomPollerName = 'Manufacturer' and cpa.CurrentValue is not null then cpa.currentvalue

end as [Manufacturer]

 

FROM Orion.NPM.CustomPollerAssignment cpa

 

join Orion.NPM.CustomPollers cp on cp.CustomPollerID=cpa.CustomPollerID

left join Orion.Nodes n on n.nodeid=cpa.nodeid

 

where cp.groupname = 'Eaton UPS'

 

 

And the results show as

 

BBY01PPUPS01.corp.int                NULL

BBY01PPUPS01.corp.int                EATON

KBI01PPUPS01.corp.int                 NULL

KBI01PPUPS01.corp.int                 EATON

KPS34PPUPS01                            NULL

KPS34PPUPS01                            Eaton

KPS37PPUPS01.corp.int               NULL

KPS37PPUPS01.corp.int               EATON

KPSWarehouseUPS                       NULL

KPSWarehouseUPS                       Eaton

MPS01CQUPS01.corp.int              NULL

MPS01CQUPS01.corp.int              Powerware Corporation

MPS01CQUPS02.corp.int              NULL

MPS01CQUPS02.corp.int              Powerware Corporation

MPS01CQUPS03.corp.int              NULL

MPS01CQUPS03.corp.int              Powerware Corporation

MPS01CQUPS05.corp.int              NULL

MPS01CQUPS05.corp.int              Powerware Corporation

MPS01CSPUPS01.corp.int            NULL

MPS01CSPUPS01.corp.int            Eaton

MUN01PPUPS01.corp.int              NULL

MUN01PPUPS01.corp.int              Eaton

PJR01PPUPS01.corp.int               NULL

PJR01PPUPS01.corp.int               Eaton Corporation

 

Thanks

 

Craig Boyce

Is there any way to change the TriggeredMessage of an Alert using the SDK?

$
0
0

I am trying to modify the text of an alert after firing in order to make it more useful. I have a trap and I want to pass it along to an external script in order to extract a substring from it, so far so good. What I can't seem to find is how can I update the TriggeredMessage field in the database after I've extracted the substring. I tried swis.query('UPDATE... (I am using python) but (un)fortunately it does input validation and doesn't let me abuse it like this.

 

Is there any other way to do it? From what I can tell swiss.update only works if you have an uri and I cannot find one for the AlertActive tabel.

 

LE: Found the uri, but it doesn't let me change TriggeredMessage. Here is the error:

raise HTTPError(http_error_msg, response=self)

requests.exceptions.HTTPError: 403 Client Error: Operation not supported on Orion.AlertActive for url: https://localhost:17778/SolarWinds/InformationService/v3/Json/swis://SolarWinds-NPM./Orion/Orion.AlertActive/AlertActiveID=221,AlertObjectID=89

 

and the code:

swis.update(Uri, TriggeredMessage='Am reusit!')

Simple Display of Multiple Counts

$
0
0

First of all, I'd like to thank the THWACK community for making me look like such a creative genius to this point.

 

My latest idea sounded oh so simple, but I've not been able to wrap my mind around it. I'm sure I must be missing something very simple.

 

I have a view that has been put together to display BGP neighbor issues in a variety of formats.

Now I want to add a very simple counter widget to the main NOC page that displays just 2 numbers:

  • The number of nodes having 1 or more BGP neighbor issues
  • The number of BGP neighbors that are not in the ESTABLISHED state

 

I have solved how to count the neighbors, but I cannot figure out how to count up the unique nodes.

 

SELECT
Count(ORN.NodeID) AS [Neighbors]
FROM Orion.Routing.Neighbors AS ORN    WHERE ORN.ProtocolID = 14    AND ORN.IsDeleted = 0    AND ORN.ProtocolOrionStatus != 1

 

This will provide me with a table with 1 column "Neighbors" and a count beneath it, but what I want is the number of unique nodes first then the number of neighbors.

NodesNeighbors
2599

 

There is a part of me that thinks this format would be better, though, in case I were to expand the things being counted later. Bonus Points for this option too:

ErrorCount
BGP Nodes25
BGP Neighbors99

 

Thanks in advance!

 

API/SDK for a REST call to update Component settings

$
0
0

Is there a way using the SWQL REST calls to update the Component Settings for a Application monitor assigned to a node?

 

Example:

I have a Node and I have created an Application Monitor for HTTP.  The URL and proxy settings need to be updated for the Node, however, I would like to do this via an API/SDK.  The GUI interface is not an option.


Unmanaging Bulk Nodes using Powershell

$
0
0

Hi Everyone,

 

Can someone help me with the script i can use ti unmanage the Bulk nodes using Powershell and can the same script integrated with Service now to Automate

Export Network Atlas Maps from Orion [PowerShell]

$
0
0

UPDATE: Updated to 1.0.1 to fix exports of User Graphics Files

 

Because I'm constantly creating and destroying Orion instances in my currently capacity, I sometimes forget to export everything before I start working on the next instance.  To that end, I started playing around with the Orion SDK and seeing if there was a way that I could rapidly export some content.  The first thing time that I had this was when I stood up a new server and wanted to use my existing Network Path Troubleshooting map.  I started to dig around a little bit and what to my wondering eyes should appear?  No, not reindeer, but a 'table' called MapStudioFiles.

 

Then I broke out my PoSH hat and started tinkering.  This is what I came up with:


<#

------------------------------------------------------------------------------------------------------

File Name:    Export-OrionMapFiles.ps1

Author:      Kevin M.  Sparenberg (https://thwack.solarwinds.com/people/KMSigma)

------------------------------------------------------------------------------------------------------

Purpose:

  This script will  export the Orion Maps (and associated files) from an active Orion System.  By

default this script will export ALL maps and associated files  (including images).  To change it to

only export hteOrionMap files comment out or remove the "Exports only the Maps" region.

  Export Path is to the  current user's desktop.  This can be  modified within the "Setup Variables &

Connect to the SolarWinds Information Service (SWIS)"  region.

IMPORTANT NOTE:

This version is set to use the "username/password"  authentication process.  This can be  changed to

AD-credentials with some minor tweaking (TBD).

Prerequisites:

  You must have OrionSDK Installed (Link:  https://thwack.solarwinds.com/community/labs_tht/orion-sdk)

  (tested with version 1.10)

Version History: [P = Past, C = Current, F = Future]

  (P) 1.0.0 - Initial  Release (2015-07-22)

  (C) 1.0.1 - Update  the path check for custom icons (2015-08-10)

  (F) 1.1.0 -  Conversion to a PowerShell Function (TBD)

  (F) 1.2.0 - Allow for  Multiple Authentication Types (TBD)

Tested against:

  Orion Platform  2015.1.2

  SAM 6.2.1

  DPA 9.2.0

  QoE 2.0

  IPAM 4.3

  NCM 7.4

  NPM 11.5.2

  NTA 4.1.1

  OGS 1.0.10

  WPM 2.2.0

  SRM 6.1.11

  Toolset 11.0.1

  UDT 3.2.2

  IVIM 2.1.0

  VNQM 4.2.2

------------------------------------------------------------------------------------------------------

#>

#region Setup Variables & Connect to the SolarWinds  Information Service (SWIS)

Add-PSSnapin-NameSwisSnapin-ErrorActionSilentlyContinue

# The username for a user with admin  level permissions

$SwisUsername="admin"

# Thepoassword for said user (in plain text)

$SwisPassword="@ppStack1"

# The IP, machine name, or alias for the associated Orion  Instance

$SwisHost    ="orionweb.demo.lab"

$SwisCredentails=New-Object-TypeNameSystem.Management.Automation.PSCredential-ArgumentList$SwisUsername,( ConvertTo-SecureString$SwisPassword-AsPlainText-Force )

# Export Path for the Files

$ExportPath="$env:userprofile\Desktop\OrionMapFiles"

#endregion

#region Exports the Maps Only

$SwqlQuery=@"

SELECT FileName, FileData

FROM Orion.MapStudioFiles

WHERE FileType = 0 AND IsDeleted = False

ORDER BY FileName

"@

#endregion

#region Exports the Maps and any associated files

$SwqlQuery=@"

SELECT FileName, FileData

FROM Orion.MapStudioFiles

WHERE IsDeleted = False

ORDER BY FileName

"@

#endregion

#region Collect the files to a local object

$SwisConnection  =Connect-Swis-Hostname$SwisHost-Credential$SwisCredentails

$OrionMapFiles=Get-SwisData-SwisConnection$SwisConnection-Query$SwqlQuery

$SwisConnection.Close()

$SwisConnection.Dispose()

Remove-Variable-NameSwisConnection-Force-Confirm:$false-ErrorActionSilentlyContinue

$TotalMapFiles=$OrionMapFiles.Count

#endregion

#region Check for Path Existence.  If the path doesn't exist, then it's created.

if ( -not ( Test-Path-Path$ExportPath-ErrorActionSilentlyContinue ) )

{

    Write-Host"Path: '$ExportPath' does not  exist.`nCreating Export  Folder..."-ForegroundColorYellow

    New-Item-ItemTypeDirectory-Path$ExportPath|Out-Null

}

#endregion

#region Cycle through each file and export to the file system

For( $i=0; $i-lt$TotalMapFiles; $i++ )

{

    Write-Progress-Activity"Exporting  Orion Map Files"-CurrentOperation"Exporting $($OrionMapFiles[$i].FileName)"-Status"Exporting $($OrionMapFiles[$i].FileData.Length) bytes"-PercentComplete ( ( $i/$TotalMapFiles ) *100 )

    #region Added  for verison 1.0.1 for Custom Icons

    # Check for  the "Full Path" and create it, if it doesn't exist.

    $ExportFullPath=( Join-Path-Path$ExportPath-ChildPath$OrionMapFiles[$i].FileName )

    $ExportDirectory=Split-Path-Path$ExportFullPath-Parent

    if ( -not ( Test-Path-Path$ExportDirectory-ErrorActionSilentlyContinue ) )

    {

        Write-Warning"Creating [$($ExportDirectory)] Folder"

        New-Item-Path$ExportDirectory-ItemTypeDirectory|Out-Null

    }

    #endregion

    $OrionMapFiles[$i].FileData|Set-Content-Path ( Join-Path-Path$ExportPath-ChildPath$OrionMapFiles[$i].FileName ) -EncodingByte-Force

}

Remove-VariableOrionMapFiles

Write-Progress-Activity"Exporting Orion Map Files"-Completed

#endregion


I'd love feedback from the community on what you think about this and what you think of my plans going forward.

How to add UPS devices in bulk using the SWIS API

$
0
0

Hi,

 

I would like to add UPS devices programmatically (preferably Powershell). Adding corresponding nodes and pollers works fine (many examples available), but that's not sufficient to get the Power Control Unit Status information. I've figured out that UPS units that have been added successfully (through the normal web interface) have corresponding records in Cortex.Orion.Node and Cortex.Orion.PowerControlUnit, but I can't figure out how to add these programmatically in such a way that it makes the Power Control Unit Status information available in the web interface.

 

Examples or code fragments that achieve this would be very helpful !

 

Kind regards,

Harm Brumsen

How to change supernet CIDR in Orion IPAM through SWIS

$
0
0

Hi,

 

I'm trying to add / change Supernets in IPAM through the API (Powershell), but I encounter some difficulties:

- I figured out that Supernets are in table IPAM.Subnet with GroupType=4, but I'm not able to create them directly through CRUD. Below piece of code doesn't work, as it ignores the GroupType attribute and still creates a subnet (GroupType=8);
   $uri = New-SwisObject $SwisConnection -EntityType 'IPAM.Subnet' -Properties @{Address=$Address; CIDR=$CIDR;ParentId=$ParentId;GroupType=4}
- First creating a Subnet and then changing it to a Supernet does work, however this approach can lead to IP range conflicts if the Supernet to be added somehow overlaps with an existing Subnet (as the Supernet is initially added as Subnet);

  $uri = New-SwisObject $SwisConnection -EntityType 'IPAM.Subnet' -Properties @{Address=$Address; CIDR=$CIDR;ParentId=$ParentId}
  Set-SwisObject -SwisConnection $SwisConnection -Uri $uri -Properties @{GroupType=4}

- First creating a Subnet with "dummy" address and CIDR doesn't work either: the CIDR cannot be changed through the API (although it can be changed through the Web UI), so below piece of code does not work.

  Set-SwisObject -SwisConnection $SwisConnection -Uri $uri -Properties @{CIDR=$newcidr}

 

Probably I'm taking the wrong approach here: I would appreciate feedback / examples on how to do this.

 

Thanks in advance !

Monitoring multiple nodes on a remote site

$
0
0

Hi everyone

 

We have NPM server on datacenter & most of nodes placed on branch office.

 

Existing Practice 1

For our existing practice, we have a double NAT. (1st on branch office firewall, 2nd on datacenter firewall because orion web not allow different node with same IP)

Example:

 

NPM IP: 192.168.0.1/16

Branch Public IP: 2.2.2.2

Monitored Nodes Address: 192.168.0.2:161, 192.168.0.3:161 (Virtual IP on datacenter)

 

Datacenter 1st NAT: 192.168.0.2:161 -> 2.2.2.2:1161

                                 192.168.0.3:161 -> 2.2.2.2:1162

Branch 2nd NAT: 2.2.2.2:1161 -> 10.10.0.1:161

                              2.2.2.2:1162 -> 10.10.0.2:161

 

Practice 2

To simplfy our routing job I using python to add nodes & found API allow adding nodes by same IP with different SNMP port, so I think the 2nd NAT no longer required & less configuration is required.

Example:

 

NPM IP: 192.168.0.1

Branch Public IP: 2.2.2.2

Monitored Nodes Address: 2.2.2.2:1161, 2.2.2.2:1162 (No virtual IP is needed)

 

Branch NAT: 2.2.2.2:1161 -> 10.10.0.1:161

                     2.2.2.2:1162 -> 10.10.0.2:161

 

I am still testing 1-3 days to observe the result. Does anyone have tried the practice 2 and any potential cons for it?

SWQL Complex query

$
0
0

very new to the swis api and SWQL so would greatly appreciate any help.

i am looking for a query that will give me traffic information interfaces this being the max/min in/out bps  and the avg in/out bps for a period of the last 30 days.

any thing i have tried so far will give me multiple entries for every few hours is there anyway to just take the highest and lowest recorded for the given day to be used for the min and max.

 

many thanks sorry if this a vague

Which table contains node the availability percentage?

$
0
0

I am trying to create a custom SQL report for the top 25 nodes by lowest availability for the last 7 days. So far this is what i've come with:

select distinct top 25 rt.Availability, rt.NodeID, n.Caption
from ResponseTime rt
join Nodes n on n.NodeID = rt.NodeID
where n.Caption like '%-FW' and rt.Availability > 0
order by Availability asc

i realize i'm missing the function to average the availability for the last 7 days.

i can't seem to find the correct table that would hold the availability data. i found the ResponseTime view that has the Availability column, but i don't think this information is accurate. when i run the above query, i get this result (i left off the caption column on purpose):

The values under the Availability column are just not correct. there's no way these Firewalls have 0% availability. they haven't dropped in over a month. so i'm sure i'm just using the wrong table.

any suggestions would be greatly appreciated. thank you.


Help with NCM config search returning error port 17777/orion/ncm/businesslayer...

$
0
0

I am following the NCM config search guide here (https://github.com/solarwinds/OrionSDK/wiki/NCM-Config-Search) to try and use the API to search for things. Right now I just have a very simple query to test the API out, but I'm getting an error as seen in the error.txt attachment.

 

Brief error:

"Message": "There was no endpoint listening at net.tcp://solarwinds_address:17777/orion/ncm/businesslayer that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details."

 

I believe my parameters are correct with no errors. Full cURL generated code from Postman is attached, but in a nutshell I'm doing:


POST to URL - https://solarwinds_address:17778/SolarWinds/InformationService/v3/Json/Invoke/Cirrus.ConfigArchive/ConfigSearch

Body content type JSON - ["username", null, null, false, false, null, null]

 

Port 17777 is verified to be listening as seen by running netstat on the server and by running nmap on my machine to verify reachability on that port. I also restarted all SWIS services on the server, but I still get the same error. I can run other API calls with no problems. It's just the config search that is returning this weird error I can find nothing on. I've tried multiple config search queries, but get the same error for all of them. I found where someone else ran into this same issue a few years ago, but there was no resolution found (Orion server - Communicating error - SOAP 17777 ). Does anyone know a solution for this?

Where are the details of Auto Discovered Volumes Stored?

$
0
0

When I add a node using Orion SDK, as mentioned in (orionsdk-python/add_node.py at master · solarwinds/orionsdk-python · GitHub ), I am able to see my node under manage nodes page.

 

When i click on "List Resources" page, I can see that the associated volumes on that node are automatically discovered and listed on that page.

 

But I cannot find these volumes in the Orion.Volumes table.

 

Where are these details saved in the database? For example, a new linux node added using the above mentioned script, shows the following volumes in the "Resources List" page. But I cannot find the fixed disk type volumes named "/", "/dev/shm", "/run", "/sys/fs/cgroup" in the Orion.Volumes table

 

 

I am planning to iterate through this list of auto discovered volumes and assign the pollers to each volume using a python script.

How can I make SW reuse SNMP credentials when adding node

$
0
0

Hi,

 

I'm posting to v3/Json/Create/Orion.Nodes to add node, passing SNMP parameters like below. Is it possible to let SW reuse credentials if the username/auth key have been stored?

 

  "SNMPV3Username": "<user>",

  "SNMPV3AuthKey": "<key>",

  "SNMPV3AuthMethod": "MD5",

  "SNMPV3AuthKeyIsPwd": true,

  "SNMPV3PrivMethod": "None",

  "SNMPV3PrivKeyIsPwd": false

 

Thanks,

Guoliang Cao

Large increase in database connections using API (invoke/delete)

$
0
0

Hello,

 

We have noticed that when making a large amount of API calls (invoke/delete) we are seeing large increases in database connections. This is causing the entire SolarWinds web client to grind to a halt unable to load pages.

For example we run a script that refreshes the interfaces on a node using DELETE calls and INVOKE calls:

delete all interfaces:

query = swis.query(

   "SELECT Uri "

   "FROM Orion.NPM.Interfaces "

   f"WHERE NodeID = {node_id}"

)

uris = [x["Uri"] for x in query["results"]]

swis._req("POST", "BulkDelete", {"uris": uris})

add interfaces after filtering:

result = swis.invoke(

   "Orion.NPM.Interfaces", "DiscoverInterfacesOnNode", node_id

)

interfaces = result["DiscoveredInterfaces"]

interfaces = filter_interfaces(interfaces, apply_filter)

swis.invoke(

   "Orion.NPM.Interfaces",

   "AddInterfacesOnNode",

  node_id,

  interfaces,

   "AddDefaultPollers",

)

Running this on a single node can increase database connections by 200. This is seen under "User Connections" on the "AppInsight for SQL" page. If we run this code for 10 nodes the number of connections spikes up to ~1.5k which severely hinders the responsiveness of the web client.

- Is this expected? Do invoke calls normally generate a lot of subsequent database calls? Is bulkdelete the culprit? (i tried individual deletes).
- Is there a way to rate limit our API calls? Happy to throw some sleeps between each node run if not.


 



curl SWQL query for polling engine component counts

$
0
0

I've been following this article to get details on how many components each polling engine is monitoring:
Success Center

 

But, I'd like to try to get this information via curl and "/SolarWinds/InformationService/v3/Json/Query".  Each query gives me an error but I'll just paste the first as an example:

 

$ curl -k -u user:pass "https://hostname:17778/SolarWinds/InformationService/v3/Json/Query?query=SELECT+Count%28ccs.ApplicationID%29+%5BComponent+Count%5D%2C+e.EngineID%2C+ae.ServerName%2C+ae.ServerType%0D%0AFROM+%5Bdbo%5D.%5BAPM_CurrentComponentStatus%5D+ccs%0D%0AJOIN+%5BAPM_Application%5D+ap+ON+ccs.ApplicationID+%3D+ap.ID%0D%0AJOIN+%5BNodesdata%5D+node+ON+ap.NodeID+%3D+node.NodeID%0D%0AJOIN+%5BEngines%5D+e+ON+node.EngineID+%3D+e.EngineID%0D%0AJOIN+%5BEngines%5D+ae+ON+ae.EngineID+%3D+e.EngineID%0D%0AGROUP+BY++e.EngineID%2C+ae.ServerName%2C+ae.ServerType%0D%0AORDER+BY+%5BComponent+Count%5D+DESC"

 

{

  "Message":"no viable alternative at input 'Component Count' in Select clause",

  "ExceptionType":"SolarWinds.Data.SWQL.SWQLSyntaxException",

  "FullException":"SolarWinds.Data.SWQL.SWQLSyntaxException: no viable alternative at input 'Component Count' in Select clause ---> Antlr.Runtime.NoViableAltException: A recognition error occurred.\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.relationalExpression()\r\n   --- End of inner exception stack trace ---\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.relationalExpression()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.equalityExpression()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.negatedExpression()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.logicalAndExpression()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.logicalOrExpression()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.expression()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.aliasedExpression()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.selectedPropertiesList()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.selectClause()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.selectFrom()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.queryRule()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.selectStatement()\r\n   at SolarWinds.Data.SWQL.Parser.SWQLParser.statement()\r\n   at SolarWinds.Data.SWQL.SWQLParser.Parse(String query)\r\n   at SolarWinds.Data.Query.Engine.QueryProcessor.CompileQueryExecutionPlan(String query, IQueryExecutionContext context)\r\n   at SolarWinds.InformationService.Core.QueryPlanCache.GetQueryPlan(String query, String username, Boolean federationEnabled, Func`1 buildQueryPlan)\r\n   at SolarWinds.InformationService.Core.InformationService.GetQueryExecutionPlan(String query, IIdentity currentIdentity, Boolean federationEnabled, IQueryExecutionContext queryExecutionContext)\r\n   at SolarWinds.InformationService.Core.InformationService.RunQuery(String query, IDictionary`2 parameters, IDataSerializer serializer, IMessageFormatterStrategy messageFormatterStrategy)"

}

 

Any idea what may be wrong?

Viewing all 2677 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>