Bencher Selbstgehostet mit Docker Schnellstart
Was ist Bencher?
Bencher ist eine Suite von kontinuierlichen Benchmarking-Tools. Hatten Sie jemals eine Performance Regression, die Ihre Nutzer beeinflusste? Bencher hätte das verhindern können. Bencher ermöglicht es Ihnen, Leistungsregressionen vorher zu erkennen und zu verhindern, bevor sie in die Produktion gelangen.
- Ausführen: Führen Sie Ihre Benchmarks lokal oder in CI mit Ihren bevorzugten Benchmarking-Tools aus. Das
bencher
CLI umfasst einfach Ihr vorhandenes Benchmark-Harness und speichert die Ergebnisse. - Verfolgen: Verfolgen Sie die Ergebnisse Ihrer Benchmarks im Laufe der Zeit. Überwachen, abfragen und grafisch darstellen der Ergebnisse mit der Bencher Web Konsole auf Basis des Quellzweigs, Testbetts und Maßnahme.
- Auffangen: Fangen Sie Leistungsregressionen in CI ab. Bencher verwendet modernste, anpassbare Analysen, um Leistungsregressionen zu erkennen, bevor sie in die Produktion gelangen.
Aus denselben Gründen, warum Unit Tests in CI laufen, um Feature Regressionen zu verhindern, sollten Benchmarks in CI mit Bencher ausgeführt werden, um Leistungsregressionen zu verhindern. Performance-Bugs sind Fehler!
Bencher Self-Hosted
Bencher ist Open Source und selbst hostbar. Wenn Sie daran interessiert sind, Bencher Cloud zu verwenden, schauen Sie sich das Bencher Cloud Quick Start Tutorial an. Dieses Tutorial wird Ihnen helfen, Bencher Self-Hosted mit Docker einzurichten.
🐰 Sobald Sie sich sicher fühlen, Bencher Self-Hosted zu verwenden, sollten Sie die folgenden Ressourcen in Betracht ziehen:
Docker installieren
Um die UI- und API-Server in diesem Tutorial auszuführen, müssen Sie docker
installiert haben.
Überprüfen Sie, ob Sie docker
installiert haben.
Führen Sie aus: docker --version
Sie sollten etwas Ähnliches sehen:
Es ist in Ordnung, wenn Ihre Versionsnummer anders ist. Es ist nur wichtig, dass dieser Befehl funktioniert.
Wenn nicht, folgen Sie den Anweisungen zur Installation von docker
.
Installation des bencher
CLI
Linux, Mac und Unix
Für Linux, Mac und andere Unix-ähnliche Systeme führen Sie Folgendes in Ihrem Terminal aus, wobei BENCHER_VERSION
auf eine aktuelle Version wie 0.4.30
gesetzt ist:
Windows
Für Windows-Systeme führen Sie Folgendes in einem PowerShell-Terminal aus, wobei BENCHER_VERSION
auf eine aktuelle Version wie 0.4.30
gesetzt ist:
🐰 Wenn Sie eine Fehlermeldung erhalten, die besagt, dass
running scripts is disabled on this system
:
Öffnen Sie Powershell
mitAls Administrator ausführen
- Führen Sie aus:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- Geben Sie ein:
Y
- Führen Sie dieses Skript erneut aus
Für weitere Installationsoptionen sehen Sie sich an, wie Sie das bencher
CLI installieren.
Nun testen wir, ob wir das bencher
CLI installiert haben.
Führen Sie aus: bencher --version
Sie sollten Folgendes sehen:
Bencher UI & API Server ausführen
Mit docker
installiert, können wir nun den UI und API Server starten.
Führen Sie aus: bencher up
Sie sollten so etwas sehen:
Es ist in Ordnung, wenn Ihre Ausgabe anders ist. Wichtig ist nur, dass dieser Befehl funktioniert.
🐰 Wenn Sie einen Fehler von
ghcr.io
erhalten, der besagt:"authentication required"
Versuchen Sie:docker logout ghcr.io
auszuführen.
🐰 Unter Windows, wenn Sie einen Fehler erhalten, der besagt:
Das Betriebssystem des Images "linux" kann auf dieser Plattform nicht verwendet werden: Betriebssystem wird nicht unterstützt
Versuchen Sie:& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchLinuxEngine
auszuführen.
Bencher API Server Protokolle
Da wir E-Mail/SMTP auf dem API-Server noch nicht eingerichtet haben,
werden die Bestätigungscodes, die Sie später im Tutorial erhalten, in den Serverprotokollen angezeigt, wie oben gezeigt.
Das heißt, die Authentifizierungsnachweise werden in der Ausgabe von bencher up
angezeigt.
Bencher Host einstellen
Der Standardhost des bencher
CLI ist Bencher Cloud (d.h. https://api.bencher.dev).
Es ist also notwendig, Ihren Hostnamen einzustellen. Der einfachste Weg, dies zu tun, ist mit der Umgebungsvariable BENCHER_HOST
.
Öffnen Sie ein neues Terminalfenster.
Auf Linux, Mac und anderen Unix-ähnlichen Systemen führen Sie aus: export BENCHER_HOST=http://localhost:61016
Auf Windows führen Sie aus: $env:BENCHER_HOST = "http://localhost:61016"
Führen Sie dann echo $BENCHER_HOST
oder Write-Output $env:BENCHER_HOST
aus.
Sie sollten folgendes sehen:
Erstellen Sie einen Bencher Self-Hosted Account
Registrieren Sie sich für Bencher Self-Hosted
Erstellen Sie einen Account auf Ihrer lokalen Bencher Self-Hosted-Instanz, indem Sie zu folgender Adresse navigieren: http://localhost:3000/auth/signup
Nachdem Sie einen Account erstellt haben, navigieren Sie zurück zum Terminalfenster, in dem Sie bencher up
ausgeführt haben.
Sie sollten etwas Ähnliches sehen:
Navigieren Sie zum Confirm Email
-Link in Ihrem Browser oder kopieren Sie das Confirmation Token
in das Confirm Token
-Feld unter: http://localhost:3000/auth/confirm
Danach sollten Sie in Ihrem Bencher Self-Hosted-Account eingeloggt sein!
Erstellen Sie einen API-Token
Um die Bencher-API verwenden zu können, müssen Sie ein API-Token erstellen.
Navigieren Sie zur Bencher Console.
Fahren Sie mit der Maus über Ihren Namen in der rechten oberen Ecke.
Ein Dropdown-Menü sollte erscheinen. Wählen Sie Tokens
.
Sobald Sie auf der API-Tokens-Seite sind, klicken Sie auf den ➕ Hinzufügen
-Button.
Ein API-Token hinzufügen
Sobald Sie Ihr neues API-Token erstellt haben, müssen Sie es in Ihre Zwischenablage kopieren. In dem Terminal, in dem Sie arbeiten möchten, exportieren Sie das API-Token als Umgebungsvariable.
Führen Sie auf Linux-, Mac- und anderen Unix-ähnlichen Systemen aus: export BENCHER_API_TOKEN=IHR_TOKEN
Führen Sie auf Windows aus: $env:BENCHER_API_TOKEN = "IHR_TOKEN"
Wenn Sie dann echo $BENCHER_API_TOKEN
oder Write-Output $env:BENCHER_API_TOKEN
ausführen.
Sie sollten sehen:
🐰 Hinweis: Wenn Sie zu einem anderen Terminal wechseln, müssen Sie das API-Token erneut exportieren.
Erstellen Sie ein Projekt
Jetzt, da wir ein Benutzerkonto und ein API-Token haben, können wir ein Projekt erstellen. Zuerst müssen wir wissen, zu welcher Organisation unser neues Projekt gehört.
Führen Sie aus: bencher org list
Sie sollten so etwas sehen:
Ihre Ausgabe sollte leicht von der oben gezeigten abweichen:
- Die
uuid
ist pseudorandom - Der
name
undslug
basieren auf Ihrem Benutzernamen - Die
created
undmodified
Zeitstempel stammen von Ihrer Anmeldung
Wir können nun ein neues Projekt innerhalb Ihrer Organisation erstellen.
Ersetzen Sie Ihren Organisations-slug
durch das Argument organization
(dh YOUR_ORG_SLUG
) im unten stehenden Befehl.
Führen Sie aus: bencher project create YOUR_ORG_SLUG --name "Save Walter White" --url http://www.savewalterwhite.com
Sie sollten so etwas sehen:
Wiederum sollte Ihr Ergebnis etwas anders aussehen als das oben gezeigte.
Es ist nur wichtig, dass dieser Befehl funktioniert.
Notieren Sie sich das Projekt slug
Feld (z.B. save-walter-white-1234abcd
).
Führen Sie einen Bericht aus
Endlich sind wir bereit, einige Benchmark-Metriken zu sammeln! Um die Sache einfach zu halten, verwenden wir in diesem Tutorial Testdaten.
Führen Sie aus: bencher mock
Sie sollten so etwas sehen:
Ihre Ausgabe sollte leicht von der oben gezeigten abweichen, da die Daten pseudorandom sind. Es ist nur wichtig, dass dieser Befehl funktioniert.
Jetzt führen wir einen Bericht mit Test-Benchmark-Messdaten aus.
Ersetzen Sie Ihren Projekt slug
durch das Argument --project
(dh YOUR_PROJECT_SLUG
) im unten stehenden Befehl.
Führen Sie aus: bencher run --project YOUR_PROJECT_SLUG "bencher mock"
Sie sollten so etwas sehen:
Sie können nun die Ergebnisse aus jedem der Benchmarks im Browser anzeigen.
Klicken Sie auf die Links unter View results
oder kopieren und fügen Sie sie ein.
Es sollte nur einen einzigen Datenpunkt für jedes Benchmark geben, also lassen Sie uns mehr Daten hinzufügen!
Zuerst setzen wir unseren Projektslug als Umgebungsvariable, damit wir ihn nicht mit --project
bei jedem einzelnen Lauf angeben müssen.
Führen Sie aus: export BENCHER_PROJECT=save-walter-white-1234abcd
Wenn Sie dann ausführen: echo $BENCHER_PROJECT
Sollten Sie sehen:
Lassen Sie uns den gleichen Befehl erneut ohne --project
ausführen, um mehr Daten zu generieren.
Führen Sie aus: bencher run "bencher mock"
Jetzt generieren wir mehr Daten, aber diesmal leiten wir unsere Ergebnisse in bencher run
um.
Führen Sie aus: bencher mock | bencher run
Manchmal möchten Sie vielleicht Ihre Ergebnisse in einer Datei speichern und bencher run
holt sie ab.
Führen Sie aus: bencher run --file results.json "bencher mock > results.json"
Ebenso könnte ein separater Prozess Ihre Benchmarks durchführen und Ihre Ergebnisse in einer Datei speichern. Dann holt bencher run
sie einfach ab.
Führen Sie aus: bencher mock > results.json && bencher run --file results.json
Schließlich lassen Sie uns eine Menge Daten mit dem Argument --iter
von bencher run
generieren.
Führen Sie aus: bencher run --iter 16 "bencher mock"
🐰 Tipp: Schauen Sie sich die Unterlagen zu
bencher run
CLI-Unterbefehl für einen vollständigen Überblick darüber, wasbencher run
alles kann!
Erstellen Sie einen Alert
Jetzt, da wir einige historische Daten für unsere Benchmarks haben, lassen Sie uns einen Alert generieren! Alerts werden erzeugt, wenn ein Benchmark-Ergebnis als Leistungsrückgang erkannt wird. Also simulieren wir einen Leistungsrückgang!
Führen Sie aus: bencher run "bencher mock --pow 8"
Am Ende der Ausgabe sollte ein neuer Abschnitt namens View alerts
:
Sie können nun die Alerts für jedes Benchmark im Browser anzeigen.
Klicken Sie auf die Links unter View alerts
oder kopieren und fügen Sie sie ein.
🐰 Tipp: Schauen Sie sich die Schwellenwert- & Alert-Dokumentation für einen vollständigen Überblick darüber an, wie Leistungsrückgänge erkannt werden!
🐰 Herzlichen Glückwunsch! Sie haben Ihren ersten Leistungseinbruch erkannt! 🎉