




















































Implement Zenoss core and fit it into your security management environment using this easy-to-understand tutorial guide.
When you view the Reports page in Zenoss Core, you should notice an empty report class called Custom Device Reports. The custom device report provides an interface that lets us query Zenoss Core for devices. Each device that matches the query is listed as a row on the report.
Let's get started with a simple report to show uptime values for all devices, and then we'll talk through the options.
With the Custom Device Reports organizer selected:
The following screenshot shows the edit screen of our report:
The next screenshot shows what our report looks like when we view it:
(Move the mouse over the image to enlarge it.)
As you see, we created a simple report that lists each device along with its uptime value. In this report, we use the Column field to do the heavy lifting. We specified the device attributes of uptimeStr and getId, which give us a human readable value of the device's uptime and the name of the device, respectively.
A good place to find device attributes is in Appendix B, Device Attributes which lists common attributes you can use with TALES expressions.
Our report shows columns for Name and Uptime, which are the values we specified in the Column Names field. For each attribute specified in the Columns field, we can define a corresponding friendly Column Name. List the column names in the same sequence as the columns.
Now that we've seen how easy it is to get started with a simple report, we'll preface our more involved examples by reviewing the available report fields.
The following table shows the available fields on the custom device reports:
Field
Description
Example
Name
Descriptive name for the report. The name doesn't display on the report.
Uptime
Title
The title displays on the report.
Uptime Report
Path
Specify the device class to query. The default is /, which will include all devices.
/Server/Linux
Query
Use the query field to filter and select data. Accepts a python or TALES expression.
Leave blank to select all devices.
here.hw.cpus.countObjects() > 0
here.sysUpTime() > -1
here.comments != ""
Sort Column
Specify the column that the report is sorted on. Can either be the Column or Column Name value.
Name
getId
Sort Sense
Apply the specific sort order to the value in Sort Column. Can either be ascending or descending.
asc
desc
Columns
Specify the data to display for each device returned in the query. This can take a device attribute or a python expression. Python expressions must be prefaced with python:. Enter one value per line.
UptimeStr
python:dev.hw.totalMemoryString()
Column Names
Define the human-friendly names that correspond to each value you entered in Columns.
Enter one value per line.
Uptime
Total Memory
There is minimal error checking done on the data you enter. If you enter a query with an invalid syntax, the View Report option will tell you about the error.
If you enter more column names than you specify columns, the interface will turn all the column names red when you save the report.
Let's refine our uptime report a bit more, so we can figure out exactly how we can build meaningful queries.