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.

Przykład niepoprawnego ciastka:

Konfiguracja elasticsearchPrzykład poprawnego ciastka:

Konfiguracja elasticsearch Konfiguracja elasticsearch

Po pierwsze trzeba zmienić w mapowaniu typ ‚responseCode’ z integer na string, a po drugie, w komunikacie wyjątku pojawia się kilka string’ów rozdzielonych spacjami. Jeśli chcemy wyciągnąć te dane, to elasticsearch rozdzieli ten komunikat na tyle części ile zidentyfikuje pojedynczych ciągłych string’ów.

Jeśli nie zmienimy typu ‚responseCode’ na string, to w elasticsearch’u w ogóle nie zapiszą się dane związane z żądaniem generującym wyjątek – można to tylko znaleźć w logu logstash’a, ponieważ logstash rzuci ostrzeżenie, że nie mógł wrzucić jakiś danych do elasticsearch.

Żeby temu zapobiec, trzeba zmodyfikować mapowanie dla kolumny ‚responseCode’ tak jak poniżej:

POST logstash-jmeter-results-2015.05.21
{
 "template": "logstash-jmeter-results-*",
 "settings": {
 "number_of_shards": 5,
 "number_of_replicas": 0,
 "index.refresh_interval": "5s"},
 "mappings": {
 "logs": {
 "properties": {
 "time": {"type": "date","format": "yyyy-MM-dd HH:mm:ss.SSS"},
 "elapsed": {"type": "long"},
 "label": {"type": "string"},
 "responseCode": {"type": "integerstring", "index" : "not_analyzed"},
 "threadName": {"type": "string"},
 "success": {"type": "boolean"},
 "bytes": {"type": "long"},
 "grpThreads": {"type": "long"},
 "allThreads": {"type": "long"},
 "Latency": {"type": "long"},
 "SampleCount": {"type": "long"},
 "ErrorCount": {"type": "long"},
 "Hostname": {"type": "string"},
 "Connect": {"type": "integer"}
 } } } }

Teraz możemy przeprowadzić poprawnie analizę zarówno po kodach odpowiedzi, jak i komunikatach wyjątków.

ELK: Konfiguracja elasticsearch – update

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.