Timer’y i nieoczekiwane błędy jmeter’a

Podczas przygotowywania kolejnych testów wydajnościowych trafiłem na dziwny problem.

Testowany system hula aż miło, ale wymagania wolumetryczne planowane na godzinę spełniam w 5 min. Niestety potrzebny jest mi baseline dokładnie spełniający wolumetrię z wymagań, bez żadnych aproksymacji w dół. Nic prostszego – zmniejszyć liczbę VU albo dodać timer’y żeby wprowadzić dodatkowe opóźnienia – niestety nie w tym przypadku.

problem z jmeter

Zmniejszyć liczby VU nie mogę, ponieważ mam wymaganie na liczbę otwartych jednocześnie sesji. Zostają timer’y. Continue reading „Timer’y i nieoczekiwane błędy jmeter’a”

Timer’y i nieoczekiwane błędy jmeter’a

InfluxDB i Grafana

InfluxDB jest open-source’ową bazą danych time-series świetnie zastępującą bazę whisper w rozwiązaniach wykorzystujących protokół graphite (opis tutaj).

Aplikację Graphite zastąpmy produktem Grafana i mamy super środowisko do wizualizacji danych.

          InfluxDB grafanaInfluxDB

Oczywiście w  https://registry.hub.docker.com mamy oficjalny obraz Grafana oraz ‚prawie’ oficjalny obraz influxDB. Mamy też obrazy zawierające komplet komponentów wraz z  carbon’em.

Łatwo i szybko możemy zbudować sobie środowisko do monitorowania w czasie rzeczywistym przebiegu testów wydajnościowych czy to z jmeter’em czy to z Gatling’iem.

Konfiguracja dla Gatling.

Konfiguracja dla jmeter.

InfluxDB i Grafana

Wizualizacja danych ‚czasowych’

Trochę dziwny tytuł, ale myślę, że dobrze oddaje sens tego co chcę dzisiaj przedstawić.

Chciałbym w kilku kolejnych wpisach przybliżyć narzędzia, które pomogą zwizualizować dane, które najprościej mówiąc, na osi X mają czas, a dokładniej timestamp.

ELK, robi mniej więcej to samo, ale w opisanym wcześniej przypadku konfiguracja opiera się ściśle na pliku csv z raportem. Niekoniecznie wizualizacja danych w czasie rzeczywistym wymaga pracy z plikiem. Continue reading „Wizualizacja danych ‚czasowych’”

Wizualizacja danych ‚czasowych’

ELK: Konfiguracja elasticsearch – update

Jeśli wykonywany test wydajnościowy przebiega bez problemów, poprzednio zaproponowana konfiguracja elasticsearch (mapowanie) działa świetnie. Niestety, gdy coś idzie źle i oprócz kodów odpowiedzi, jakich moglibyśmy się spodziewać (2xx,3xx,5xx, ogólnie: jakiś integer), pojawiają się wyjątki jmeter’a, to analiza pod kątem kodów odpowiedzi jest niepoprawna.

Continue reading „ELK: Konfiguracja elasticsearch – update”

ELK: Konfiguracja elasticsearch – update

ELK: Kibana

Jeśli wszystko poprawnie skonfigurowaliśmy, to przy pomocy Kibana ‚y będziemy mogli wizualizować zbierane dane. Konfiguracja Kibana ‚y jest default’owa zgodnie ze wspominanym wcześniej tutorialem, a sama obsługa jest intuicyjna.

kibanaNa razie załaduję istniejący plik logu. Trzeba pamiętać żeby wybrać odpowiedni przedział czasowy dla analizy – taki gdzie będą jakieś dane

kibana

Continue reading „ELK: Kibana”

ELK: Kibana

ELK: Konfiguracja elasticsearch

Dochodzimy do sedna tej ciut specyficznej konfiguracji ELK. Mapowanie.

Żeby zbierane dane były zdatne do jakiejkolwiek analizy innej niż ilościowa, należy zmapować nazwy kolumn na określone typy danych. Jeśli tego nie zrobimy, zobaczymy te dane, ale jako zbiór string’ów.

Konfiguracja elasticsearch nie jest trywialna. Poniżej moja wstępna propozycja Continue reading „ELK: Konfiguracja elasticsearch”

ELK: Konfiguracja elasticsearch