Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

Zenoss: Creating Custom Reports

Save for later
  • 4 min read
  • 04 May 2011

article-image

Zenoss Core 3.x Network and System Monitoring


zenoss-creating-custom-reports-img-0

Implement Zenoss core and fit it into your security management environment using this easy-to-understand tutorial guide.

Creating Custom Device Reports


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:

  1. Select Add Custom Device Report from the Add Report button (at the bottom of the Report Classes sidebar.
  2. In the Create Custom Device Report dialog, type a name for your report in the ID field. I'm going to use Uptime. When you click on Submit, the edit screen is displayed.
  3. Enter the following values for the Uptime report, as seen in the following screenshot. Leave all other fields set to their default values.
    • Title: Uptime
    • Sort Column: Name
    • Columns: uptimeStr, getId
    • To view the report, click the Save button, and then click on the View Report link (in the sidebar).


The following screenshot shows the edit screen of our report:

zenoss-creating-custom-reports-img-1


The next screenshot shows what our report looks like when we view it:

(Move the mouse over the image to enlarge it.)

zenoss-creating-custom-reports-img-2


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.

Custom Device 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

Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at $19.99/month. Cancel anytime

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.