{"id":17697899,"url":"https://github.com/ivangfr/api-oha-benchmarker","last_synced_at":"2025-04-10T09:46:01.101Z","repository":{"id":251866844,"uuid":"834818380","full_name":"ivangfr/api-oha-benchmarker","owner":"ivangfr","description":"api-oha-benchmarker is a tool to easily benchmark APIs. It uses Testcontainers to manage Docker containers. Load testing is done with OHA. To collect information such as CPU and memory usage, it uses the docker stats command. It also uses cAdvisor to visually monitor CPU and memory usage.","archived":false,"fork":false,"pushed_at":"2025-03-18T14:57:58.000Z","size":39,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T07:31:38.822Z","etag":null,"topics":["cadvisor","docker","java","load-testing","oha","spring-boot","testcontainers"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivangfr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ivangfr"}},"created_at":"2024-07-28T13:07:26.000Z","updated_at":"2025-03-18T14:58:01.000Z","dependencies_parsed_at":"2024-08-06T08:15:56.260Z","dependency_job_id":"7c5a822d-fb54-4bdf-ba5f-933891c31528","html_url":"https://github.com/ivangfr/api-oha-benchmarker","commit_stats":null,"previous_names":["ivangfr/api-oha-benchmarker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangfr%2Fapi-oha-benchmarker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangfr%2Fapi-oha-benchmarker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangfr%2Fapi-oha-benchmarker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangfr%2Fapi-oha-benchmarker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivangfr","download_url":"https://codeload.github.com/ivangfr/api-oha-benchmarker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248196353,"owners_count":21063402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cadvisor","docker","java","load-testing","oha","spring-boot","testcontainers"],"created_at":"2024-10-24T15:00:52.505Z","updated_at":"2025-04-10T09:46:01.074Z","avatar_url":"https://github.com/ivangfr.png","language":"Java","funding_links":["https://github.com/sponsors/ivangfr"],"categories":["Integrations"],"sub_categories":[],"readme":"# api-oha-benchmarker\n\n`api-oha-benchmarker` is a tool to easily benchmark APIs. It uses [`Testcontainers`](https://testcontainers.com/) to manage Docker containers. Load testing is done with [`OHA`](https://github.com/hatoo/oha). To collect information such as CPU and memory usage, it uses the [`docker stats`](https://docs.docker.com/reference/cli/docker/container/stats/) command. It also uses [`cAdvisor`](https://github.com/google/cadvisor) to visually monitor CPU and memory usage.\n\n## Proof-of-Concepts \u0026 Articles\n\nOn [ivangfr.github.io](https://ivangfr.github.io), I have compiled my Proof-of-Concepts (PoCs) and articles. You can easily search for the technology you are interested in using the filter. Who knows, perhaps I have already implemented a PoC or written an article about what you are looking for.\n\n## Additional Readings\n\n### Spring Boot Performance Benchmark\n\n- \\[**Medium**\\] [**Spring Boot Performance Benchmark: Web, Reactive, CDS, AOT, Virtual Threads, JVM, and Native**](https://medium.com/@ivangfr/spring-boot-performance-benchmark-web-reactive-cds-aot-virtual-threads-jvm-and-native-29295c8099b0)\n- \\[**Medium**\\] [**Spring Boot 3.3.2 Benchmark: Web, Reactive, CDS, AOT, Virtual Threads, JVM, and Native**](https://medium.com/@ivangfr/spring-boot-3-3-2-benchmark-web-reactive-cds-aot-virtual-threads-jvm-and-native-42d3b704e88e)\n- \\[**Medium**\\] [**Spring Boot 3.3.4 Benchmark: Web, Reactive, CDS, AOT, Virtual Threads, JVM, and Native**](https://medium.com/@ivangfr/spring-boot-3-3-4-benchmark-web-reactive-cds-aot-virtual-threads-jvm-and-native-5a3ab117054c)\n\n### Java Frameworks Performance Benchmark\n\n- \\[**Medium**\\] [**Java Frameworks Performance Benchmark: Spring Boot vs. Quarkus vs. Micronaut**](https://medium.com/@ivangfr/java-frameworks-performance-benchmark-spring-boot-vs-quarkus-vs-micronaut-028b6dbfef2e)\n- \\[**Medium**\\] [**Performance Benchmark: Spring Boot 3.3.2 vs. Quarkus 3.13.2 vs. Micronaut 4.5.1**](https://medium.com/@ivangfr/performance-benchmark-spring-boot-3-3-2-vs-quarkus-3-13-2-vs-micronaut-4-5-1-515bae82d04f)\n- \\[**Medium**\\] [**Performance Benchmark: Spring Boot 3.3.4 vs. Quarkus 3.15.1 vs. Micronaut 4.6.3**](https://medium.com/@ivangfr/performance-benchmark-spring-boot-3-3-4-vs-quarkus-3-15-1-vs-micronaut-4-6-3-9691c4cfcb2a)\n\n## Prerequisites\n\n- [`Java 21`](https://www.oracle.com/java/technologies/downloads/#java21) or higher;\n- A containerization tool (e.g., [`Docker`](https://www.docker.com), [`Podman`](https://podman.io), etc.)\n\n## Configuration\n\nAll the configuration is done in the `application.yaml` where you can set:\n\n- Is `cAdvisor` enabled?\n  - Property: `cadvisor.enabled`\n  - Default: `false`\n- Should `cAdvisor` open the webpage with container statistics?\n  - Property: `cadvisor.open-browser`\n  - Default: `false`\n- Number of requests and concurrency:\n  - Property: `load-test-runner.num-requests-and-concurrency`\n  - Default: list containing `100:100`, `300:300`, `900:900`, and `2700:2700`\n- Pause between request submissions:\n  - Property: `load-test-runner.pause-millis`\n  - Default: `3000`\n- Applications Docker containers to run:\n  - Property: `load-test-runner.app-containers`\n  - Configuration map:\n    ```text\n    \u003cdocker-container-name\u003e:\n      docker-image-name: \u003cname of the Docker image to use\u003e\n      endpoint: \u003cendpoint to call\u003e\n      app-type: \u003capplication type: spring-boot, quarkus, or micronaut\u003e\n      environment: \u003clist of environment variables for the container\u003e\n    ```\n\n## How to run\n\n- In a terminal, make sure you are inside the `api-oha-benchmarker` root folder;\n- Run the following command:\n  ```bash\n  ./mvnw clean spring-boot:run -Dspring-boot.run.profiles=springboot\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangfr%2Fapi-oha-benchmarker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivangfr%2Fapi-oha-benchmarker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangfr%2Fapi-oha-benchmarker/lists"}