## Performance Data When a host and service check is executed plugins should provide so-called `performance data`. Next to that additional check performance data can be fetched using Icinga 2 runtime macros such as the check latency or the current service state (or additional custom attributes). The performance data may be passed to external applications which then generate nice graphs for historical reporting and trending. Well-known addons processing Icinga performance data are PNP4Nagios, inGraph and Graphite. ### Writing Performance Data Files PNP4Nagios, inGraph and Graphios use performance data collector daemons to fetch the current performance files for their backend updates. Therefore the Icinga 2 `PerfdataWriter` object allows you to define the output template format for host and services backed with Icinga 2 runtime vars. host_format_template = "DATATYPE::HOSTPERFDATA\tTIMET::$icinga.timet$\tHOSTNAME::$host.name$\tHOSTPERFDATA::$host.perfdata$\tHOSTCHECKCOMMAND::$host.checkcommand$\tHOSTSTATE::$host.state$\tHOSTSTATETYPE::$host.statetype$" service_format_template = "DATATYPE::SERVICEPERFDATA\tTIMET::$icinga.timet$\tHOSTNAME::$host.name$\tSERVICEDESC::$service.description$\tSERVICEPERFDATA::$service.perfdata$\tSERVICECHECKCOMMAND::$service.checkcommand$\tHOSTSTATE::$host.state$\tHOSTSTATETYPE::$host.statetype$\tSERVICESTATE::$service.state$\tSERVICESTATETYPE::$service.statetype$" The default templates are already provided with the Icinga 2 feature configuration which can be enabled using # icinga2-enable-feature perfdata By default all performance data files are rotated in a 15 seconds interval into the `/var/spool/icinga2/perfdata/` directory as `host-perfdata.` and `service-perfdata.`. External collectors need to parse the rotated performance data files and then remove the processed files. ### Graphite Carbon Cache Writer While there are some Graphite collector scripts and daemons like Graphios available for Icinga 1.x it's more reasonable to directly process the check and plugin performance in memory in Icinga 2. Once there are new metrics available, Icinga 2 will directly write them to the defined Graphite Carbon daemon tcp socket. You can enable the feature using # icinga2-enable-feature graphite By default the `GraphiteWriter` object expects the Graphite Carbon Cache to listen at `127.0.0.1` on port `2003`. The current naming schema is icinga.. icinga...