ZenPack Developers' Guide
Synopsis
Zenoss is the global leader in hybrid IT monitoring and analytics software, providing complete visibility for cloud, virtual and physical IT environments for more than 40,000 global organizations. ZenPacks are the extension mechanism provided by Zenoss to build new functionality and also to easily port customization from one Zenoss server to another. This book provides detailed ZenPack design practices, coding techniques and debugging hints, based around a number of sample ZenPacks.
The sample ZenPacks explore:
- Zenoss architecture
- ZenPack architecture
- Creating new object classes and relationships
- The zenpacklib tool
- Creating new collector modeler plugins to populate the new classes with data
- Converting old, nonzenpacklib ZenPacks to use zenpacklib
- Creating code for web pages for new types of objects, both JavaScript and TAL
- Creating new performance datasources and data templates
- Converting COMMANDbased ZenPacks to use the PythonCollector
- Incorporating new event classes, triggers and notifications in ZenPacks
- Creating and extending menus
- Extending functionality using routers and facades
- Logging and debugging
- The process of ZenPack creation, GitHub and ZenPack submission to Zenoss
Another objective of the document is to provide examples of good practice. These tips are highlighted throughout the document with a green tick symbol.
The final main objective is to offer deeper insights into the architecture and functionality provided in the standard Zenoss code, especially with reference to how the ZenPack developer uses and extends this code. These sections should probably be skipped initially by someone first starting out with ZenPacks. There are a number of complete sections and they are prefaced with *. Smaller, indepth points throughout the paper are highlighted with a yellow asterisk.
At the time of writing (Spring 2016) Zenoss 4.2.5 is the main Zenoss production platform. Many Zenoss 3 implementations are still in use and Zenoss 5.x is emerging among early adopters. The document will major on 4.2.5 practices but will also cover differences for Zenoss 3 and Zenoss 5.
It is assumed that the reader is familiar with basic SNMP and Linux concepts and with standard Zenoss configuration techniques.
Complete paper
The paper is available as a PDF file:
- ZenPack Developers' Guide PDF September 2016
It can also be ordered from Lulu as a printed book:
- ZenPack Developers' Guide paperback
See also Jane Curry's list of papers.