InfluxDB graphite tags

InfluxDB possède un collecteur graphite permettant de connecter toutes sortes de logiciels compatibles comme collectd ou icinga2 afin de stocker des métriques.

Avec la configuration de base du collecteur graphite d’InfluxDB, vos métriques ressembleront à ca:

monhost.load.load.longterm
icinga2.monhost2_unix_lan.services.disk_root.check_remote_disk.perfdata._tmp.value

Le problème principal de ce type de métrique est le requêtage. En effet, une métrique simple comme celle ci ne peut être obtenue qu’au moyen d’une regexp, il n’y a pas de critière discriminant. Le second problème est qu’il vous sera impossible d’utiliser le système de templates sur grafana.

Heureusement, InfluxDB a prévu le coup, même si ce n’est pas bien documenté. Il est possible de créer des tags à partir de votre collecteur graphite en vous basant sur la structure du nom de la métrique.

Ouvrez le fichier influxdb.conf et allez dans votre section graphite puis ajoutez les lignes suivantes si vous utilisez icinga2:

templates = [
  "icinga2.hostname.measurement*"
]

ou les lignes suivantes si vous connectez un collectd:

templates = [
  "hostname.measurement*"
]

Redémarrez ensuite InfluxDB.

Cette directive va vous permettre de créer des tags basés sur le nom d’hôte de vos machines (cf exemple de métrique en début d’article). Le tag s’appèlera ici hostname. Les tags vont vous permettre de filtrer vos métriques par critères (hôte, site, datacenter…).

Vous pouvez maintenant aller sur grafana refaire vos dashboard avec les nouveaux noms de métriques utilisés et filtrer par hostname. Pour cela il suffit d’aller dans les options d’un dashboard, dans la section templating et indiquer les valeurs suivantes:

Grafana influx variableVous pouvez activer la fonction All value vous permettant d’afficher tous les graphiques de manière condensée ou fusionnée en utilisant la méthode regexp comme ci-dessus mais je ne vous la conseille pas pour plus d’une dizaine de machines si vous ne voulez pas brûler votre navigateur web.

Enfin voici comment utiliser ce nouveau tag dans vos requêtes InfluxDB sur vos graphiques:

Grafana influx request