continuous benchmarking

28
www.parisjug.org 19/02/2022 1 Copyright @ 2014 ParisJug. Licence CC - Creative Commons 2.0 France – Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique

Upload: khaled-hamlaoui

Post on 17-Jan-2017

5 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Continuous benchmarking

www.parisjug.org

01/05/2023 1Copyright @ 2014 ParisJug. Licence CC - Creative Commons 2.0 France – Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique

Page 2: Continuous benchmarking

Continuous benchmarking

par Khaled HAMLAOUI

201/05/2023

Page 3: Continuous benchmarking

Continuous benchmarking

Au programme…• Continuous benchmarking

– Benchmarking why? How ? …– Tools and methodology– Dashboards example– GitHub project

301/05/2023

Page 4: Continuous benchmarking

Continuous benchmarking

Qui je suis…• Khaled HAMLAOUI

• Description• Technical architect at Amadeus

• https://fr.linkedin.com/in/khaled-hamlaoui-303b4610

[email protected]/05/2023

Page 5: Continuous benchmarking

Continuous benchmarking

Benchmarking

501/05/2023

Page 6: Continuous benchmarking

Continuous benchmarking

Why BenchmarkingAnticipate

601/05/2023

Page 7: Continuous benchmarking

Continuous benchmarking

Benchmarking test types

701/05/2023

Page 8: Continuous benchmarking

Continuous benchmarking

Metrics business / technical

801/05/2023

_Business transaction response time(higher than average + 2 standard deviations => alert)_Throughput_Memory usage_Cpu usage_Garbage collection

Page 9: Continuous benchmarking

Continuous benchmarking

Usual benchmarking life cycle

901/05/2023

Page 10: Continuous benchmarking

Continuous benchmarking

Tools and methodology

1001/05/2023

Page 11: Continuous benchmarking

Continuous benchmarking

Tools and methodology

1101/05/2023

Page 12: Continuous benchmarking

Continuous benchmarking

WireMock

1201/05/2023

• Simulator for http-based APIs (mock server)• Powerful request Matching (URL, HTTP Method, Query parameters

Headers, Basic authentication (a special case of header matching))• Record and Playback• Proxy mode• Config with java or json

Page 13: Continuous benchmarking

Continuous benchmarking

WireMock / json config

1301/05/2023

Page 14: Continuous benchmarking

Continuous benchmarking

WireMock / java config

1401/05/2023

Page 15: Continuous benchmarking

Continuous benchmarking

WireMock / simulating faults

1501/05/2023

stubFor(get(urlEqualTo("/fault")) .willReturn(aResponse().withFault(Fault.MALFORMED_RESPONSE_CHUNK)));

• EMPTY_RESPONSE

• MALFORMED_RESPONSE_CHUNK

• RANDOM_DATA_THEN_CLOSE

Page 16: Continuous benchmarking

Continuous benchmarking

Gatling and ELK

1601/05/2023

Page 17: Continuous benchmarking

Continuous benchmarking

Gatling logs

1701/05/2023

• Sample galing log:

Page 18: Continuous benchmarking

Continuous benchmarking

Gatling logs

1801/05/2023

Page 19: Continuous benchmarking

Continuous benchmarking

Logstash config for Gatling logs

1901/05/2023

Page 20: Continuous benchmarking

Continuous benchmarking

Logstash config JMX

2001/05/2023

{ "host" : "host", "port" : port, "url" : "service:jmx:rmi:///jndi/rmi://host:port/jmxrmi", "alias" : « server_jvm", "queries" : [ { "object_name" : "java.lang:type=Memory", "object_alias" : "Memory", "attributes" : ["HeapMemoryUsage","NonHeapMemoryUsage"] },

{ "object_name" : "java.lang:type=OperatingSystem", "object_alias" : "OperatingSystem", "attributes" : ["SystemCpuLoad"] } ]}

Page 21: Continuous benchmarking

Continuous benchmarking

Kibana Dashboards

2101/05/2023

Page 22: Continuous benchmarking

Continuous benchmarking

Kibana dashboard system cpu load

2201/05/2023

Page 23: Continuous benchmarking

Continuous benchmarking

Kibana dashboard duration percentiles

2301/05/2023

Page 24: Continuous benchmarking

Continuous benchmarking

GitHub sample project

https://github.com/khamlaoui/continuous-benchmarking

2401/05/2023

Page 25: Continuous benchmarking

Continuous benchmarking

Conclusion

2501/05/2023

_Continuous benchmarking is possible with low cost

_Anticipate the production possible problem ASAP_WireMock is therefore perfectly suited for

continuous benchmarking

Page 26: Continuous benchmarking

Continuous benchmarking

Questions ?

2601/05/2023

Page 27: Continuous benchmarking

Continuous benchmarking

Merci !

2701/05/2023

Page 28: Continuous benchmarking

Sponsors

2801/05/2023