Unlimited number of graph items can be defined for each graph optionally
utilizing CDEFs or data sources from within cacti.

Automatic grouping of GPRINT graph items to AREA, STACK, and LINE[1-3] to
allow for quick re-sequencing of graph items.

Auto-Padding support to make sure graph legend text lines up.

Graph data can be manipulated using the CDEF math functions
built into RRDTool. These CDEF functions can be defined in cacti and can
be used globally on each graph.

Support for all of RRDTool's graph item types including AREA, STACK,
LINE[1-3], GPRINT, COMMENT, VRULE, and HRULE.

Data Sources

Data sources can be created that utilize RRDTool's "create" and
"update" functions. Each data source can be used to gather local or remote
data and placed on a graph.

Supports RRD files with more than one data source and can use an RRD file
stored anywhere on the local file system.

Round robin archive (RRA) settings can be customized giving the user
the ability to gather data on non-standard timespans while store varying amounts
of data.

Data Gathering

Contains a "data input" mechanism which allows users to define custom scripts
that can be used to gather data. Each script can contain arguments that must be entered
for each data source created using the script (such as an IP address).

Built in SNMP support that can use php-snmp, ucd-snmp, or net-snmp.

Ability to retrieve data using SNMP or a script with an index. An example of this
would be populating a list with IP interfaces or mounted partitions on a server. Integration
with graph templates can be defined to enable one click graph creation for hosts.