【发布时间】:2017-10-31 22:36:40
【问题描述】:
我正在使用 SolarWinds Orion NPM(网络性能监控)监控我的节点。我正在使用 Orion SDK 将警报信息从 SWIS(SolarWinds 信息服务)获取到 vb.net 控制台应用程序中。
我正在使用一些 vb.net 代码:
Function GetOneAlert(ByVal swis As InformationServiceClient) As AlertInfo
Dim query As String, result As XElement
query = "SELECT TOP 1 A.AlertDefID, A.ActiveObject, A.ObjectType FROM Orion.AlertStatus A WHERE A.Acknowledged=0 ORDER BY A.TriggerTimeStamp DESC"
result = swis.QueryXml(query)
问题是,我想从swis(SolarWinds 信息服务)中名为Orion.AlertDefinitions、Orion.AlertStatus 和Orion.Nodes 的三个表中获取alertinforamtion,我需要加入这三个表,但我可以使用如下所示的swql(SolarWinds 查询语言)查询加入其中 2 个(Orion.AlertDefinitions、Orion.AlertStatus)
query = "SELECT AlertStatus.AlertDefID, AlertDefinitions.AlertDefID, AlertDefinitions.Name, AlertStatus.State, AlertStatus.ObjectName,
AlertStatus.TriggerTimeStamp, AlertDefinitions.Description FROM Orion.AlertStatus INNER JOIN Orion.AlertDefinitions
ON AlertStatus.AlertDefID=AlertDefinitions.AlertDefID WHERE AlertStatus.Acknowledged=0"
我知道警报详细信息,但我不知道警报属于哪个节点。为此,我需要将“orion.node”表与其余表连接起来。但是第三个表 (Orion.Nodes) 在其他两个表中的任何一个中都没有要加入的公共字段。
我需要从Orion.Nodes 表中获取三个名为DNS、IPAddress、NodeDescription 的字段值。
【问题讨论】:
标签: .net vb.net solarwinds-orion