Upload
khaled-hamlaoui
View
5
Download
0
Embed Size (px)
Citation preview
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
Continuous benchmarking
par Khaled HAMLAOUI
201/05/2023
Continuous benchmarking
Au programme…• Continuous benchmarking
– Benchmarking why? How ? …– Tools and methodology– Dashboards example– GitHub project
301/05/2023
Continuous benchmarking
Qui je suis…• Khaled HAMLAOUI
• Description• Technical architect at Amadeus
• https://fr.linkedin.com/in/khaled-hamlaoui-303b4610
• [email protected]/05/2023
Continuous benchmarking
Benchmarking
501/05/2023
Continuous benchmarking
Why BenchmarkingAnticipate
601/05/2023
Continuous benchmarking
Benchmarking test types
701/05/2023
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
Continuous benchmarking
Usual benchmarking life cycle
901/05/2023
Continuous benchmarking
Tools and methodology
1001/05/2023
Continuous benchmarking
Tools and methodology
1101/05/2023
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
Continuous benchmarking
WireMock / json config
1301/05/2023
Continuous benchmarking
WireMock / java config
1401/05/2023
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
Continuous benchmarking
Gatling and ELK
1601/05/2023
Continuous benchmarking
Gatling logs
1701/05/2023
• Sample galing log:
Continuous benchmarking
Gatling logs
1801/05/2023
Continuous benchmarking
Logstash config for Gatling logs
1901/05/2023
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"] } ]}
Continuous benchmarking
Kibana Dashboards
2101/05/2023
Continuous benchmarking
Kibana dashboard system cpu load
2201/05/2023
Continuous benchmarking
Kibana dashboard duration percentiles
2301/05/2023
Continuous benchmarking
GitHub sample project
https://github.com/khamlaoui/continuous-benchmarking
2401/05/2023
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
Continuous benchmarking
Questions ?
2601/05/2023
Continuous benchmarking
Merci !
2701/05/2023
Sponsors
2801/05/2023