Plugins 〉PNP

Sven Nierlein

Sign up to receive occasional product news and updates:

Data Source


  • Overview
  • Installation
  • Change log
  • Related content

PNP Grafana Datasource - a Grafana backend datasource using PNP4Nagios to access RRD files


Search for pnp in the Grafana plugins directory or simply use the grafana-cli command:

%> grafana-cli plugins install sni-pnp-datasource

Also OMD-Labs comes with this datasource included, so if you use OMD-Labs, everything is setup already.

Otherwise follow these steps:

%> cd var/grafana/plugins
%> git clone -b release-1.0.7
%> restart grafana

Replace release-1.0.7 with the last available release branch.


In order to make this datasource work, you need the pnp api. This is a separate project at the moment and will be part of the official pnp in the future. You can fetch the api.php from and place it in your controler folder.

In a standard PNP setup, you could basically just download the api directly into the controller folder with a simple wget:

wget "" \
     -O /usr/share/pnp4nagios/html/application/controllers/api.php

Adjust the output path to your installation.

Create Datasource

Add a new datasource and select:

- Type 'PNP'
- Url to pnp, ex.: 'https://localhost/sitename/pnp4nagios'

Example Dashboard

This datasource ships an example dashboard which gets you started and shows the internal PNP statistics.


Simply select host, service and label in the query editor. Regular expressions are supported in the host and service field by adding slashes like /.*/.


You may use the following variables in the alias field:

- $tag_host: will be replaced with the hostname
- $tag_service: will be replaced with the service name
- $tag_label: will be replaced with the label
- $tag_perflabel: same as label

All standard variables will also do.


There is basic templating variable support. There are 3 different querys available:

- $host:    hosts
- $service: services where host = /^$host$/
- $label:   labels where host = /^$host$/ and service = /^$service$/

host variables examples


To test and improve the plugin you can run Grafana instance in Docker using following command (in the source directory of this plugin):

%> make grafanadev

This will expose local plugin from your machine to Grafana container. Now run make buildwatch to compile dist directory and start changes watcher:

%> make buildwatch

Create Release

How to create a new release:

%> export RELVERSION=1.0.9
%> export GRAFANA_API_KEY=...
%> vi package.json # replace version
%> vi # add changelog entry
%> git commit -am "Release v${RELVERSION}"
%> git tag -a v${RELVERSION} -m "Create release tag v${RELVERSION}"
%> make GRAFANA_API_KEY=${GRAFANA_API_KEY} clean releasebuild
# upload zip somewhere and validate on
# create release here
# submit plugin update here



Installing PNP on Grafana Cloud:

For more information, visit the docs on plugin installation.


2.0.2 2023-05-30 - fix using factor - fix using variables in query editor suggestions - fix using variables to repeat rows - replace All with .* in multi-option dropdowns - make query editor input fields clearable

2.0.1 2022-11-18 - fix label query - improve error reporting when editing template queries

2.0.0 2022-09-26 - rebuild with react for grafana 9

1.0.8 2021-01-04 - sign plugin - switch package builds to yarn

1.0.7 2020-09-11 - improve packaging

1.0.6 2020-06-29 - improve datasource error details - fix plugin beeing loaded twice (#17) - fix dashboard export

1.0.5 2017-11-20 - fix template query parsing

1.0.4 2017-09-29 - add mathematical factor option - fix template variables with latest grafana 4.5.2 - fix replacing template variables in repeated panels

1.0.3 2017-08-18 - add support for host / service / label templating variables

1.0.2 2017-08-16 - add support for warning / critical thresholds - fix accesing series containing spaces

1.0.1 2017-03-13 - plugin id changed according to guidelines - add fallback to pnp name if label does not exist

1.0.0 2017-03-02 - inital release