Skip navigation
Currently Being Moderated

WMI Data Source

VERSION 30  Click to view document history
Created on: Sep 14, 2009 1:30 PM by bigegor - Last Modified:  Jul 13, 2012 11:52 AM by bigegor

Submitted by: Egor Puzanov


Description:
This ZenPack creates a new WMI Data Source. This can be used to wrap WQL calls that had been previously made with wmic as Command data sources. The advantage for the WMI Data Source is that credentials should be properly handled and performance may be improved.

 

* Query syntax unification with WBEMDataSource

  • Example1: SELECT * FROM CIM_Processor - will enumerate all Instances of CIM_Processor class
  • Example2: CIM_Processor - will also enumerate all Instances of CIM_Processor class
  • Example3: SELECT * FROM CIM_Processor WHERE DeviceID="CPU0" - get single Instance for CPU0
  • Example4: CIM_Processor.DeviceID="CPU0" - get single Instance for CPU0
  • Example5: root/cimv2:CIM_Processor.DeviceID="CPU0" - get single Instance from specific namespace

* Properties names to Data Points names mapping

  • Description: set Data Points names the same as CIM Properties names
  • Example:
    • Query: SELECT LoadPercentage FROM CIM_Processor
    • Data Point: LoadPercentage
* Queries sorting (join multiple queries in one query)
  • Example: Device has 4 CPUs (components)
    • DataSource Query for CPU1: CIM_Processor.DeviceID="CPU0"
    • DataSource Query for CPU2: CIM_Processor.DeviceID="CPU1"
    • DataSource Query for CPU3: CIM_Processor.DeviceID="CPU2"
    • DataSource Query for CPU4: CIM_Processor.DeviceID="CPU3"
  • Result query: CIM_Processor
    • Instance.DeviceID="CPU0" -> DataPoints from DataSource CPU1
    • Instance.DeviceID="CPU1" -> DataPoints from DataSource CPU2
    • Instance.DeviceID="CPU2" -> DataPoints from DataSource CPU3
    • Instance.DeviceID="CPU3" -> DataPoints from DataSource CPU4
  • 4 queries will be replaced by 1 query

* CIMDataSource support

  • zenperfwmi daemon collected performance data specified in CIMDataSource

* support for DataPoint Aliases (evaluate befor write RRD)

  • before be saved in RRD, values will be evaluated by REVERSED alias.formula
  • supported operations +, -, *, /
  • tales variables: now, here
  • Example: 
    • alias.formula = "100,/,1,-" replaced by "1,+,100,*"
  • Why reversed?
    • raw data: 100 -> "100,100,/,1,-" -> RRD: 0 -> "0,100,/,1,-" ->Report: -1 - False!
    • raw data: 100 -> "100,1,+,100,*" -> RRD: 10100 -> "10100,100,/,1,-" ->Report: 100 -True!

* support for dictionary as DataPoint Aliases (evaluate befor write RRD)

  • Example:
    • "Unknown":0,"Other":1,"OK":2,"Warning":3,"Error":4

* WMIClient can be used standalon, based on modified Query.py from pysamba

* added __path attribute for Wbem Insatnce

  • __path attribute added to instance
  • __path == instanceName
  • Example:CIM_Processor.DeviceID="CPU3"

* WMIPlugin CollectorPlugin added (any namespaces, tables format like in WBEMPlugin)

  • support for namespaces other than root/cimv2

* support for avg, count, sum, min, max function for datapoints with multiline result

  • if query return multiple instance to zenperfwmi datemon, avg, count, sum, min, max value can be evaluated
  • Example: Query: CIM_Processor, DataPoint:LoadPercentage_avg, Alias:LoadPercentage
    • CIM_Processor.DeviceID="CPU0" LoadPercentage=20
    • CIM_Processor.DeviceID="CPU1" LoadPercentage=40
    • CIM_Processor.DeviceID="CPU2" LoadPercentage=50
    • CIM_Processor.DeviceID="CPU3" LoadPercentage=30
    • Result in RRD: 35

* WmiProxy support

  • Example: SAN Storage IP: 10.10.10.10, Server with SMI-S: 20.20.20.20
  • for device SAN Storage zProperty zWmiProxy:20.20.20.20

Screenshots:

 

WMIcpu.png

WMIDataSource.png

 


REQUIREMENTS:

     Zenoss Version: 2.5, 3.0

     ZenPack Dependencies: SQL Data Source

     External Dependencies:

     Installation:


Source: https://github.com/epuzanov/ZenPacks.community.WMIDataSource

Tagged Releases:

Change History:

  • 1.1 initial release
  • 1.5 added compatibility for Zenoss 2.5
  • 2.1 based on ZenCollector framework
  • 2.2 fixed a number of issues, (http://zenpacks.zenoss.org/trac-zenpacks/log/zenpacks/ZenPacks.community.WMIDataSource/)
  • 2.3  support for dictionary as DataPoint Aliases
  • 2.5 ValueMap processing, multiple aliases associated with a single property
  • 2.6 Zenoss 3.0 support
  • 2.7 solved problem with newer pysamba version (>1.3.10)
  • 2.8 import messaging class. Thanks joeadmin for pointing this out.
  • 2.9 send clear event after successful data collection
  • 2.10 fix time zone parsing
  • 2.11 fix WmiPerfConfig errors, WQL queries optimization.
  • 3.0 removed zenperfwmi daemon, switch to zenperfsql daemon

Trac tickets: http://zenpacks.zenoss.org/trac-zenpacks/report/1

Known issues:

Comments (152)