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 Selbstgehostet

Bencher ist Open Source und selbst hostbar. Wenn Sie Bencher Cloud verwenden möchten, schauen Sie sich das Bencher Cloud Schnellstart-Tutorial an. Dieses Tutorial hilft Ihnen dabei, Bencher Selbstgehostet mit Docker einzurichten.

🐰 Sobald Sie sich mit der Nutzung von Bencher Selbstgehostet vertraut fühlen, sollten Sie die folgenden Ressourcen prüfen:


Docker installieren

Um die Console- 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:

Terminal window
docker --version

Sie sollten etwas Ähnliches sehen:

Docker version 20.10.17, build 100c701

Es ist in Ordnung, wenn Ihre Versionsnummer anders ist. Wichtig ist nur, dass dieser Befehl funktioniert. Falls nicht, folgen Sie den Anweisungen zur Installation von docker.


bencher CLI installieren

Wählen Sie Ihr Betriebssystem aus und führen Sie den bereitgestellten Befehl aus, um die bencher CLI zu installieren. Für weitere Details siehe die bencher CLI-Installation Dokumentation.

Terminal window

Jetzt lassen Sie uns überprüfen, ob Sie die bencher CLI installiert haben. Führen Sie aus:

Terminal window
bencher --version

Sie sollten sehen:

bencher 0.5.0

Führen Sie bencher up aus

Mit installiertem docker und dem bencher CLI können Sie jetzt die Console- und API-Server mit dem bencher up CLI-Unterbefehl ausführen. Führen Sie aus:

Terminal window
bencher up

Sie sollten etwas Folgendes sehen:

Pulling `ghcr.io/bencherdev/bencher-api:latest` image...
Creating `bencher_api` container...
Starting `bencher_api` container...
Pulling `ghcr.io/bencherdev/bencher-console:latest` image...
Creating `bencher_console` container...
Starting `bencher_console` container...
🐰 Bencher Self-Hosted is up and running!
Console Server: http://localhost:3000
API Server: http://localhost:61016
Press Ctrl+C to stop Bencher Self-Hosted.
🐰 Bencher Self-Hosted logs...
Jan 08 16:49:07.727 INFO 🐰 Bencher API Server v0.5.0
...

Es ist in Ordnung, wenn Ihre Ausgabe unterschiedlich ist. Es ist nur wichtig, dass dieses Kommando funktioniert.

🐰 Wenn Sie von ghcr.io einen Fehler erhalten, der besagt: "authentication required" Versuchen Sie: docker logout ghcr.io


Wählen Sie Ihr Benchmark-Harness aus

Wenn Sie bereits Benchmarks geschrieben haben, wählen Sie Ihre Programmiersprache und das Benchmarking-Harness aus der untenstehenden Liste aus. Andernfalls überspringen Sie diesen Schritt einfach. Für weitere Details siehe die Benchmark-Harness-Adapter Dokumentation.

C#
C++
Go
Java
JavaScript
Python
Ruby
Rust
Shell
JSON

Verfolgen Sie Ihre Benchmarks

Sie sind nun bereit, Ihre Benchmark-Ergebnisse zu verfolgen! Dazu verwenden Sie das bencher run CLI-Subkommando, um Ihre Benchmarks auszuführen und die Ergebnisse zu sammeln. Führen Sie aus:

Terminal window

Möglicherweise müssen Sie den Benchmark-Befehl an Ihre Konfiguration anpassen. Falls Sie noch keine Benchmarks haben, können Sie einfach das bencher mock Subkommando als Benchmark-Befehl verwenden, um einige Mock-Daten zu generieren. Wenn alles wie erwartet funktioniert, sollte das Ende der Ausgabe ungefähr so aussehen:

View results:
- bencher::mock_0 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=f7022024-ae16-4782-8f0d-869d65a82930&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_1 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=7a823440-216f-482d-a05f-8bf75e865bba&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_2 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=8d9695ff-f352-4781-9561-3c69012fd9fe&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_3 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=8ef6e256-8084-4afe-a7cf-eaa46384c19d&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_4 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=1205e35a-c73b-4ff9-916c-40838a62ae0b&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
Claim this project: https://localhost:3000/auth/signup?claim=d4b0cd5a-8422-40af-9872-8e18d5d062c4

Sie können die Ergebnisse für jeden Ihrer Benchmarks jetzt im Browser ansehen. Klicken Sie oder kopieren und fügen Sie die Links aus View results ein. Um das Projekt zu beanspruchen, klicken Sie oder kopieren und fügen Sie den Claim this project-Link in Ihren Browser ein.



🐰 Glückwunsch! Sie haben Ihre ersten Benchmarkergebnisse mit Bencher Selbstgehostet verfolgt! 🎉


Weiter: Wie man ein Projekt beansprucht ➡

🤖 Dieses Dokument wurde automatisch von OpenAI GPT-4 generiert. Es ist möglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, öffnen Sie bitte ein Problem auf GitHub.


Published: Sat, August 12, 2023 at 4:07:00 PM UTC | Last Updated: Sun, April 6, 2025 at 6:30:00 PM UTC