Wondering if there is any documentation on the new perfstack API endpoint. /api2/perfstack/metrics
PerfStack API
How to find NTA database server in SWQL
I know that in the SQL db you can find it with
SELECT * FROM [dbo].[NetFlowGlobalSettings]
where KeyName = 'NetFlowStorageAddress'
but is there a SWQL equivalent table or somewhere else that would give me the IP or hostname for the NTA db server? I haven't been able to find it so far.
How to remove duplicated audit events
Hi,
Can you show me how to remove duplicated audit events from this query?
SELECT o.TimeLoggedUtc, o.AccountID, o.AuditEventMessage, n.DisplayName, o.AuditingActionType.ActionTypeDisplayName, cp.OS_Environment, cp.os_admin, cp.site_name, cp.mute_node, n.ipaddress, cp.os_type, cp.Site_Server_Room_Rak, cp.Site_Server_Room_Row, n.status, n.childstatus, n.DetailsUrl, o.networknode, n.nodeid
FROM Orion.AuditingEvents o
left JOIN Orion.Nodes n ON o.NetworkNode=n.NodeID
left join orion.nodescustomproperties cp ON o.networknode=cp.nodeid
WHERE cp.mute_node = 'true' and AuditEventMessage like '%Mute_Node% to %True%' and NetworkNode is not NULL and ActionTypeID = 30
order by TimeLoggedUtc DESC
I know there's a new built-in Mute feature with SAM 6.4, however I can't transition to that method yet, so thanks in advance.
SQWL Query is valid on the SDK, but showing invalid as SW datasource
Hi,
When I run this query on SWQL, validated, however when I try to add this same swql query as a custom resource, it's showing an invalid query. I believe it may have to do with LEFT OUTER JOIN Orion.NodesCustomProperties AS cp ON AlertSup.id = cp.nodeid
SELECT DISTINCT
EntityUri, SuppressFrom, SuppressUntil, ToLocal(SuppressFrom) AS [LocalSuppressFrom], ToLocal([SuppressUntil]) AS [LocalSuppressUntil],
CASE
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
THEN N.Caption
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
THEN AA.FullyQualifiedName
ELSE 'SomethingElse'
END AS Element,
CASE
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
THEN N.DetailsUrl
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
THEN AA.DetailsUrl
ELSE '<a href="/Orion/SummaryView.aspx">SomethingElse</a>'
END AS DetailsUrl,
CASE
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
THEN N.Status
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
THEN AA.Status
ELSE 30
END AS Status,
AE.AccountID, N.ipaddress, cp.os_type, cp.os_environment, cp.os_admin, cp.site_name, cp.site_server_room_row, cp.site_server_room_rak
FROM Orion.AlertSuppression AS AlertSup
LEFT OUTER JOIN Orion.Nodes AS N ON AlertSup.EntityUri = N.Uri
LEFT OUTER JOIN Orion.APM.Application AS AA ON AlertSup.EntityUri = AA.Uri
LEFT OUTER JOIN Orion.AuditingEvents AS AE ON AE.AuditEventMessage LIKE CONCAT('%', CASE
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
THEN N.NodeName
WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
THEN AA.Name
ELSE 'Wrong'
END, '%') AND [EntityUri] LIKE CONCAT('%=', AE.NetObjectID)
INNER JOIN Orion.AuditingActionTypes AS AT ON AE.ActionTypeID = AT.ActionTypeID
LEFT OUTER JOIN Orion.NodesCustomProperties AS cp ON AlertSup.id = cp.nodeid
WHERE [AT].ActionTypeDisplayName LIKE '%mute%'
Thank you.
Automating node additions e2e: including Hardware Health Sensors
Hello,
I've been working on automating the addition of nodes to Solarwinds, and I had assumed that would be a routine and well documented task. However I have struggled to find consolidated documentation that walks through the process definitively in any way. Usually when this happens I assume PEBCAK as a) I'm new to Solarwinds so I'm probably doing something wrong, b) I'm a SysEngineer and not a networking guy so much is unfamiliar, and c) sometimes I don't know the right questions to ask. So if this question is malformed or otherwise ignorant I apologize, but I need some help.
I have gotten relatively far using the examples from PowerOrion and from this forum. Currently I can get a node added, set properties both standard and custom, configure interfaces, and add pollers (enabling things like Routing, CPU&Memory, VLAN, Topology, etc. monitoring).
However I am stuck at that last tick box of enabling Hardware Health Sensors. I have found this conversation Adding Hardware Health Details , in which tdanner posted on 7/7/15:
It is still not possible to add just the hardware health polling, but you can use the discovery API to add everything for a node, including hardware health. See this post for details:"
I can follow the sample script in that post to discover my node rather than add it, and it comes in fine. However, I still see the same behavior as when I add the node directly in that the Hardware Health Sensors resource is not selected. This is the part where I assume I must be doing something wrong. tdanner says it works; I do not experience it working....
I did not see any specific flag in the sample XML for discovery that stood out to me as a "Turn Health Sensors ON" attribute. Did I miss something? Is there one to add? Do I need to change the default discovery settings in Orion?
When I run Network Sonar Discovery against my discovery IP (which is IPv6 if that matters) I find the node fine, it adds, and Health Hardware Sensors is enabled by default.
Why isn't the scripted discovery also enabling HHS by default?
And to significantly truncate my rant: Adding nodes via script should already be simple. I think many people would want to do this. I had hoped it would be a well documented process. Please consider improvements to this process for the next release.
Thanks for any input and feedback.
Dana
SWQL Query: Select distinct will result in an information service failed
Hi, can someone tell me why, if I run this query under a "Query Resource", it will fail with an error: Error: A query to the SolarWinds Information Service failed. However, if I remove the select "DISTINCT", it will run the query?
Can you not use the "distinct"? I know I can run this as a custom table, but it just looks better with the query resource view.
SELECT distinct
ToLocal([SuppressFrom]) AS [LocalSuppressFrom],
ToLocal([SuppressUntil]) AS [LocalSuppressUntil],
CASE
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
THEN [N].[Caption]
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
THEN [I].[FullName]
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
THEN [AA].[FullyQualifiedName]
ELSE 'SomethingElse'
END AS [Element],
CASE
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
THEN [N].[Status]
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
THEN [I].[Status]
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
THEN [AA].[Status]
ELSE 30
END AS [Status],
[AE].AccountID
FROM Orion.AlertSuppression AS [AlertSup]
LEFT OUTER JOIN Orion.Nodes AS [N]
ON [AlertSup].[EntityUri] = [N].[Uri]
LEFT OUTER JOIN Orion.NPM.Interfaces AS [I]
ON [AlertSup].[EntityUri] = [I].[Uri]
LEFT OUTER JOIN Orion.APM.Application AS [AA]
ON [AlertSup].[EntityUri] = [AA].[Uri]
LEFT OUTER JOIN Orion.AuditingEvents AS [AE]
ON [AE].AuditEventMessage LIKE CONCAT('%', CASE
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
THEN [N].[NodeName]
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
THEN [I].[InterfaceCaption]
WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
THEN [AA].[Name]
ELSE 'Wrong'
END, '%') AND [EntityUri] LIKE CONCAT('%=', [AE].NetObjectID)
INNER JOIN Orion.AuditingActionTypes AS [AT]
ON [AE].ActionTypeID = [AT].ActionTypeID
WHERE [AT].ActionTypeDisplayName LIKE '%mute%'
SolarWinds PerfStack API
Since this is undocumented at the moment, I decided to start digging around.
API Endpoint
/api2/perfstack
https://swservername/api2/perfstack
Query Paramaters
- count
- resolution
- startTime
- endTime
- details
- relations
PerfStack Query Paramaters
- offset
- length
- orderBy
- sort
- displayName
- status
- type
- user
- updateLastAccessed
MetaData
Endpoint: metadata/
States
Endpoint: metadata/states
Lists All States
https://swservername/api2/perfstack/metadata/states
Lists a single state by ID
metadata/states/{statusIds}
Example: https://swservername/api2/perfstack/metadata/states/1
Types
Endpoint: metadata/types
List all Types
https://swservername/api2/perfstack/metadata/types
List specific Type
metadata/types/{entityTypeCdl}
Entities
Endpoint: entities/
Query Parameters
- Length
- Offset
Get Entity Info
Endpoint: entities/{entityIdsCdl}
Filters
- entityId
Query Parameters – Used to Get Metrics
- Count
- Resolution
- StartDate
- EndDate
Examples:
Gets entity information for a single node based on entityID
https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/
Get Metrics for entityID, returns first measurement for each metric
https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/?count=1
Get Available Metrics For Entity
Endpoint: entities/{entityIdsCdl}/metrics
Filters
- entityId
Query Parameters – Used to Get Metrics
- Count
- Resolution
- StartDate
- EndDate
Examples:
Gets all metric types for a specific entity
https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/metrics
Get Metrics for entityID, returns first measurement for each metric
https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/metrics/?count=1
Get Relationships for Entity
Endpoint: entities/{entityIdsCdl}/relationships
Example: https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/relationships
States
Endpoint: entities/states
List all states
https://swservername/api2/perfstack/entities/states
List state by ID
Endpoint: /states/{statusIds}
Example: https://swservername/api2/perfstack/entities/states/2
Types
Endpoint: entities/types
List all Types
https://swservername/api2/perfstack/entities/types
List by TypeID
Endpoint: entities/types/{entityTypeCdl}
Metrics
Endpoint: metrics/
Filters
- entityId
- metricId
Query Parameters
- Count
- Resolution
- StartDate
- EndDate
Get Measurement For Entity
Endpoint: metrics/{id}
Get Groups For Entity
Endpoint: metrics/{entityId}/groups
Get Measurement For Group
Endpoint: metrics/{entityId}/groups/{groupId}
Orion SDK with PowerShell - manage/unmanage multiple nodes
I've been able to script unmanaging and managing nodes in powershell. However, for 400+ nodes, this ends up taking quite a while. Via script, it takes about 7 minutes to unmanage the nodes and over 10 minutes to remanage them. Doing this from the website takes about 25 seconds and no more than a minute, respectively. My guess is that the website somehow group updates the database instead of doing it one at a time. Anyone else seen this or have any idea how to do more than one node at a time? Below is sample code for how I am unmanaging a single node:
Invoke-SwisVerb $swis Orion.Nodes Unmanage @("N:$nodeid",$start,$end,"false")
Thanks for any advice you have!
Verbs and their parameters for IPAM.IPNode in addition to 'UpdateManyStatus'??
PREFACE:
- I'll be referring to the blog: How to use the IPAM API and get "Free IP Address" specifically a post by mtokarz on June 12, 2014 2:35PM in response to jgovednik
- I am also aware of and have voted for the feature request: Add SWIS features to IPAM
- I have also referred to this question post: to see if any verbs exist for IPAM.IPNode, but none that I can find.
Following the post mentioned in #1, I am able to successfully find the next free ip address and update the status of an IP address in Solarwinds using Powershell:
Pre-reqs: Download the Orion SDK: solarwinds/OrionSDK · GitHub
Getting a Free IP Address:
# START Connect to SWIS
Add-PSSnapin SwisSnapin
$hostname = "mysolarwinds"
$username = "myuser"
$password = ConvertTo-SecureString -String "mypassword" -asplaintext -force
$creds = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $username, $password
$swis = Connect-Swis -host $hostname -Credential $creds
# END Connect to SWIS
Function SWOIPAM-GetFreeIpAddress($subnetAddress)
{
$ipaddress = Get-SwisData $swis 'SELECT TOP 1 I.DisplayName FROM IPAM.IPNode I WHERE Status=2 AND I.Subnet.Address=@subnetAddress AND I.DnsBackward IS NULL' @{subnetAddress = $subnetAddress}
return $ipaddress
}
$subnetProvision = 'X.X.X.X'
SWOIPAM-GetFreeIpAddress($subnetProvision)
Where:
- $subnetProvision = Desired subnet to get next available IP Address from
Updating the Free IP Address' status from 'Available' to 'Used':
$postParams = @{__EVENTTARGET='ctl00$BodyContent$ctl05';__EVENTARGUMENT='';'ctl00$BodyContent$Username'='admin';'ctl00$BodyContent$Password'='password'}
Invoke-WebRequest -Uri http://mysolarwinds:8787/Orion/Login.aspx?autologin=no -Method POST -SessionVariable s -Body $postParams
$postParams = @{'entity'='IPAM.IPNode';'verb'='UpdateManyStatus';'ObjectId'='129';'ipstatus'='1';'ids'='4'}
Invoke-WebRequest -Uri http://mysolarwinds:8787/Orion/IPAM/ExtCmdProvider.ashx -Method POST -WebSession $s -Body $postParams
Where:
- ObjectID : type = number => SubnetId from IPAM.IPNode
- One can obtain the SubnetId with the query: SELECT SubnetId, Address, FriendlyName, VLAN FROM IPAM.Subnet
- ipstatus : type = number => where 1 (Used), 2 (Available), 4 (Reserved)
- ids : type = number => the 4th octet of the IP Address you want to update in the specified subnet
THE QUESTION:
If the verb 'UpdateManyStatus' (with the params of ObjectID, ipstatus and ids) exist for IPAM.IPNode to update a particular IP address' status,
(@{'entity'='IPAM.IPNode';'verb'='UpdateManyStatus';'ObjectId'='129';'ipstatus'='1';'ids'='4'}),
are there any other verbs or documentation of verbs with necessary parameters for IPAM.IPNode that will update the DnsBackward (hostname), Comments and SkipScan fields for a particular IP Address??
If I can find out the verbs and their necessary parameters, then I would be able to update via the same method used for updating an IP Address' status in Powershell.
Thank you
Node Management
We have a large environment where over time certain polling engines will aquire more nodes than others. In the past I have monthly/quartly re-assigned these nodes to their correct polling engines manually via GUI. Because we use SolarWinds for asset inventory the scan jobs must be up to date. I only have polling engines scan networks where that polling engines devices live. This way I don't get a bunch of "changed" notices via discovery. From my understanding a polling engine during a discovery will think it found new/changed devices even if that device is managed by another polling engine.
The objective of the script is to place nodes based on their IP to a specific polling engine. at the end of the script I added a clause that excludes devices who are already on the correct polling engine. I do not want the app to set the EngineId if already correct (And EngineID <> 2)
If I run the script with the two arguments below (WHERE ip_address LIKE '10.22.%' AND EngineId <> '2'" ) The script does what its suppose to do. It only applies the engine change if the queried node is not already on the specified engine.
$uris=Get-SwisData$swis"SELECT uri FROM Orion.Nodes WHERE ip_address LIKE '10.22.%' AND EngineId <> '2'"
As soon as I add another argument such as another IP filter, the script ignores the last argument EngineId <> 2
$uris=Get-SwisData$swis"SELECT uri FROM Orion.Nodes WHERE ip_address LIKE '10.22.%' OR ip_address LIKE '10.210.%' AND EngineId <> '2'"
I'm thinking I am missing a small piece of syntax, any help is greatly appreciated. As always, a big thanks to the SDK veterans, you really do make all this possible. Thanks!
Full script below (security removed)
$ErrorActionPreference = 'Stop'
#Add the snapin
Add-PSSnapin SwisSnapin
#create a connection to solarwinds
#swis = Connect-Swis -Hostanme $hostname -Trusted
$swis = Connect-Swis -Hostname $hostname -Username $username -Password $password
$targetEngineId =@{ EngineId = 3; }
$uris = Get-SwisData $swis "SELECT uri FROM Orion.Nodes WHERE ip_address LIKE '10.22.%' OR ip_address LIKE '10.210.%' AND EngineId <> '2'"
$uris | Set-SwisObject $swis -properties $targetEngineId
Entity Relationships Querying with SWQL
WIth the new SDK released I noticed the Metadata entities, not sure if these existed before hand, anyways.
Metadata.Relationship
Metadata.RelationshipMetadata
Metadata.Entity
Am I correct in assuming these can be used to get all relationships based on a entity ID? If so are there any examples someone can provide on how to properly query this. If not can more context be provided on what the metadata entities provide. I was hoping to be able to get all relationships from by passing in the nodeID or entityID, simliar to how the perfstack API operates. I could then populate some nice group views.
Is there a data dictionary for the Orion database
Looking for information beyond the basic barebones type of field schema, something that describes the utility for anything beyond the obvious fields.
Thanks
Creating a CustomPollerAssignmentOnNode returns: 400 Client Error: Sequence contains no elements
In migrating from 11.5 to 12.1, I'm rebuilding my entire 5K-node system from scratch (it's a long story).
In doing so, I'm trying to migrate code I have written in Python using the (latest and greatest) SDK to handle custom poller assignments for various devices (among other things).
This code worked in 11.5, but I'm getting a '400 Client Error: Sequence contains no elements' from the requests package when I call:
swis.create('Orion.NPM.CustomPollerAssignmentOnNode', NodeID=NodeID, CustomPollerID=CustomPollerID)
File "build/bdist.linux-x86_64/egg/orionsdk/swisclient.py", line 34, in create
File "build/bdist.linux-x86_64/egg/orionsdk/swisclient.py", line 59, in _req
File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 851, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Sequence contains no elements
Did something significant change, in the way we're supposed to create custom poller assignments?
It's probably something about version mismatches between Python packages again.
Powershell - get-swisdata
Trying to get a handle on this....I want to work with unmanaging one node, and trying to get the nodeID using something like below.
This is in the testing phase, trying to get handle on the PS commands from SDK
I can get a list from:
get-swisdata $swis "SELECT NodeID, Caption FROM Orion.Node"
I am trying to test using one node named - dtcorp20013. Thought I could use:
get-swisdata $swis "SELECT NodeID, Caption FROM Orion.Nodes Where Caption like dtcorp20013"
I tried using a variable and got the same error message below....
But I get an error:
Get-SwisData : Cannot resolve property dtcorp20013
At line:1 char:13
+ get-swisdata <<<< $swis "SELECT NodeID, Caption FROM Orion.Nodes Where Caption like dtcorp20013"
+ CategoryInfo : InvalidOperation: (:) [Get-SwisData], FaultException`1
+ FullyQualifiedErrorId : SwisError,SwisPowerShell.GetSwisData
Any thoughts, is there more detailed documentation on the commands, properties, etc (anything along the lines of SS64?)
Orion SDK Python Class
After lots of research I've created a class for my django app, I very supportive of open source and as there is not much for python around thought I'd share it with you all.
Orion SDK - Python Class · GitHub
Enjoy.
Donald
Automated creation of NPM server nodes including specific node resources
I have a PS script that utilizes both the SDK and the Internet Explorer PS Object. The script does the following:
Script Input Arguments: Script Action (Currently just adds, but in the future it would delete, modify custom props, etc...), Node Name, Node's IP Address, Orion Poller name, server profile csv file (contains the custom properties to populate). Powershell syntax:
Script Requirements:
- Discovery profile to be used by the script only. The profile should include the SNMP strings required to add an SNMP node. Currently this is hard coded in the script.
- csv File that contains custom property names as headers and the property values. The custom property fields need to already exist. You can modify the script fairly easily to read in your custom props.
- (optional) a logfile name/path hard coded in the script that outputs script process and actions.
- Internet Explorer browser (tested on v8 and v9)
- I have not tested this on an NPM SSL website.
Script Syntax: <script name> add <node (server) name> <node IP Address> <Orion Poller Name> <server Profile Name>
Script Process Overview:
- Prompts for SW credentials - Can be modified to use specific credentials without prompting.
- Reads in arguments
- Connects to Orion instance on the poller name specified.
- Reads the custom properties from the csv file into a hash table
- Starts discovery process
- Modifies the discovery profile (currently coded in the script) and changes the discovery scope to only scan the IP address of the node (using the node's IP address argument)
- logs into website using previously supplied credentials
- Starts running the discovery scan using the modified discovery profile.
- Adds the discovered node including it's resources found during the discovery.
- Verifies the node has been added.
- Updates the node's custom properties with the values from the csv file.
- Removes specific node resources. (I used this to remove the many virtual adapters found on Windows 2008 servers), but can be modified to remove other node resources as well.
I don't want to post the script yet because I would like it to be more scripter friendly, but contact me if you are interested.
Chris
Automating node additions e2e: including Hardware Health Sensors
Hello,
I've been working on automating the addition of nodes to Solarwinds, and I had assumed that would be a routine and well documented task. However I have struggled to find consolidated documentation that walks through the process definitively in any way. Usually when this happens I assume PEBCAK as a) I'm new to Solarwinds so I'm probably doing something wrong, b) I'm a SysEngineer and not a networking guy so much is unfamiliar, and c) sometimes I don't know the right questions to ask. So if this question is malformed or otherwise ignorant I apologize, but I need some help.
I have gotten relatively far using the examples from PowerOrion and from this forum. Currently I can get a node added, set properties both standard and custom, configure interfaces, and add pollers (enabling things like Routing, CPU&Memory, VLAN, Topology, etc. monitoring).
However I am stuck at that last tick box of enabling Hardware Health Sensors. I have found this conversation Adding Hardware Health Details , in which tdanner posted on 7/7/15:
It is still not possible to add just the hardware health polling, but you can use the discovery API to add everything for a node, including hardware health. See this post for details:"
I can follow the sample script in that post to discover my node rather than add it, and it comes in fine. However, I still see the same behavior as when I add the node directly in that the Hardware Health Sensors resource is not selected. This is the part where I assume I must be doing something wrong. tdanner says it works; I do not experience it working....
I did not see any specific flag in the sample XML for discovery that stood out to me as a "Turn Health Sensors ON" attribute. Did I miss something? Is there one to add? Do I need to change the default discovery settings in Orion?
When I run Network Sonar Discovery against my discovery IP (which is IPv6 if that matters) I find the node fine, it adds, and Health Hardware Sensors is enabled by default.
Why isn't the scripted discovery also enabling HHS by default?
And to significantly truncate my rant: Adding nodes via script should already be simple. I think many people would want to do this. I had hoped it would be a well documented process. Please consider improvements to this process for the next release.
Thanks for any input and feedback.
Dana
Active Time in All Active Alerts
Hi,
My customer is a service provider with multiple client and they want to display alters based on customer which is not supported by default hence I have created a SWQL query to list all alerts based on customer which is working.
My issue is in the default 'All Active Alerts' there's a column called 'Active time' which display for how long given alert is active, I would like to know on which SQL table this data is stored.
Custom Chart - To specify both X & Y Axis
My requirement is to count all alerts based on severity and then present its value as bar graph.
I have written the following query in this regard.
Select C.Severity, Count (*) AS Total from AlertStatusView A
INNER JOIN AlertObjects B ON A.AlertObjectID = B.AlertObjectID
INNER JOIN AlertConfigurations C ON B.AlertID = C.AlertID
INNER JOIN NodesCustomProperties D ON D.NodeID = B.RelatedNodeId
Group by C.Severity having COUNT (*) >= 1
Order by C.Severity DESC
I get two outputs severity & total (sum of alerts for each sev).
I want to display severity in x-axis and total in left y-axis but in custom chart there’s no option to plot x-axis and this is by default assigned to timestamp.
Please advise how I can plot this graph or if there are any other ways.
Can any one supply a REST example of how to define a Node in Solarwinds
I am developing an integration agent for SolarWindws and would like to use the REST API to add nodes to SolarWindws and change the system name