pixel
Seite wählen

Stresstest für InfluxDB

von | Jul 29, 2021 | InfluxDB

Nach einer frischen Installation von InfluxDB, egal ob auf einem dedizierten System oder nicht, frägt man sich vielleicht wie leistungsfähig das Graphing Setup nun wirklich ist oder wie viel es denn eigentlich verträgt?

Diese Fragen lassen sich mit influx-stress beantworten. Das in Golang geschriebene Helferchen ist über GitHub erhältlich und feuert beliebig viele einstellbare Metriken an InfluxDB. Dabei spielt es keine Rolle ob es lokal oder remote von einem anderen System aus aufgerufen wird.

Installation

Nachdem das Repository heruntergeladen wurde, wird das Ganze mit “go build” kompiliert:

# git clone https://github.com/influxdata/influx-stress.git
# cd influx-stress/cmd/influx-stress/
# go build -o /usr/local/bin/influx-stress

Vorbereitungen

Das Tool unterstützt derzeit nur die Authentifizierung für v1, allerdings kann man auf diese bei Bedarf auch komplett verzichten. Mit InfluxDB OSS 2.x kann dafür die “InfluxDB 1.x compatibility API” benutzt werden. Außerdem empfiehlt es sich für die Tests ein eigenes Bucket anzulegen um es später in einem Rutsch wieder zu löschen oder um gleich eine passende Retention Policy zu definieren.

# influx bucket create -n stress
# influx bucket list
# influx v1 auth create --username stress --password ****** --write-bucket f596604f968324ff
# influx v1 dbrp create --bucket-id f596604f968324ff --db stress --rp infinite

Let’s go!

Sind die Vorbereitungen gemacht, kann es losgehen. Mit “-f” läuft die Abgabe der Metriken so schnell wie möglich (fast as possible). Ich würde empfehlen zumindest noch mit “-r” (runtime) die Laufzeit einzuschränken, andernfalls würde es endlos laufen. Durch Eingabe von “–host” definiert man den Remotehost (Standard: “http://localhost:8086”).

# /usr/local/bin/influx-stress insert -f -r 1m --user stress --passs ****** --db stress

Eine beispielhafte Serie (für Icinga) könnte so aussehen: (Standard: “ctr,some=tag n=0i”)

# /usr/local/bin/influx-stress insert -r 1m ping4,hostname=agent.example.com,service=ping4,metric=rta crit=0.200000,min=0,unit="seconds",value=0.200000,warn=0.100000 --user stress --passs ****** --db stress

Nach erfolgtem Lauf bekommt man sowohl den Durchsatz (Throughput) als auch die geschriebenen Punkte (Points Written) angezeigt. Außerdem werden die Standardeinstellungen für die nicht definierten Parameter ausgegeben, die sich natürlich aber auch noch abändern lassen.

Using batch size of 10000 line(s)
Spreading writes across 100000 series
Output is unthrottled
Using 20 concurrent writer(s)
Running until ~18446744073709551615 points sent or until ~1m0s has elapsed
Write Throughput: 212335
Points Written: 13100000

Wer mehr zum Thema InfluxDB erfahren möchte, dem kann ich neben unseren üblichen Dienstleistungen auch unser InfluxDB & Grafana Training wärmstens ans Herz legen.

Markus Waldmüller
Markus Waldmüller
Lead Senior Consultant

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Lead Senior Consultant gelandet. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.
Mehr Beiträge zum Thema InfluxDB

Keine Ergebnisse gefunden

Die angefragte Seite konnte nicht gefunden werden. Verfeinern Sie Ihre Suche oder verwenden Sie die Navigation oben, um den Beitrag zu finden.

Trainings

Web Services

Events