The probe description

The probes descriptions lists the values collected, and other probes configuration elements. It's described in this DTD whose XML doctype is

<!DOCTYPE probedesc PUBLIC "-//jrds//DTD Probe Description//EN" "urn:jrds:probedesc">

A new probe desc is where everyone wanting to write a new probe should start. The easiest way is done by finding a existing one and modify it to suits your needs.

It start by some configuration elements, followed by a set of data sources and finally the graphs that will displays the values.

The probes parameter, as defined in the DTD are:

  • name: the name of the probe.
  • probeName: the probe instance name, that will the rrd file name.
  • probeClass: the java class that will run the probe.
  • index: an optional template index.
  • specific: generics parameters, for class specific configuration.
  • uptimefactor: a optional multiplier for the uptime, if the probe don't return it in seconds.

A data sources is defined using:

  • dsName: the datasource name.
  • collect: the protocol identification of the value collect, for example the OID for SNMP.
  • minValue: the minimum possible value.
  • maxValue: the maximum possible value.
  • defaultValue: an optionnal default value, when it's not return during the collect.

Some protocol return 64 bits values in two 32 bits fields. RRD4J can manage it if instead of collect, the datastore is define with collecthigh and collectlow.

For historical reasons, the collects elements for snmp are called oid, oidhigh and oidlow.

If a collect element is defined but not the dsName, the value will be collected but not stored. It's up to the developers to define in the filterValues or modifySample method what to do. In opposite, if the dsName and dsType is define without the collect, it's up to the user to fill the field again in the same method.

The graph list is not mandatory, but without it, the collected values are not very useful.


Any probe uses attributes, that are user defined values for a probe instance.

There is two kind of attributes : Java's beans based and custom.

For the first kind, they are declared in the probe java code with the annotation @ProbeBean, that maps to plain java bean (getXxx and setXxx). The type of the bean must be able to take a String as a single argument constructor.

custom attributes are declared within the probe description. It a enumeration of customattr elements that take a name as a single attribute.

Every attributes, beans or customs, can take a default value that can be over ridden in the probe instantiation. A default value can be resolved after all others attributes have bean resolved, and so can reuse other values. Such kind of default values must be declared with the delayed attribute set to true.

Example :

        <attr name="port">80</attr>
        <attr name="file" delayed="true">/key/${attr.index}</attr>
probesdk/probedesc.txt · Last modified: 2014/08/05 13:11 by root     Back to top