{"id":18291156,"url":"https://github.com/rhecosystemappeng/database-benchmark-quarkus-client","last_synced_at":"2026-07-02T17:05:08.162Z","repository":{"id":44155333,"uuid":"448083719","full_name":"RHEcosystemAppEng/database-benchmark-quarkus-client","owner":"RHEcosystemAppEng","description":"This quarkus client is used to measure the performance/benchmark of the connected database.","archived":false,"fork":false,"pushed_at":"2022-03-22T18:44:45.000Z","size":771,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T02:15:19.640Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RHEcosystemAppEng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-14T19:25:37.000Z","updated_at":"2022-01-14T19:33:18.000Z","dependencies_parsed_at":"2022-09-10T00:10:33.792Z","dependency_job_id":null,"html_url":"https://github.com/RHEcosystemAppEng/database-benchmark-quarkus-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fdatabase-benchmark-quarkus-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fdatabase-benchmark-quarkus-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fdatabase-benchmark-quarkus-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RHEcosystemAppEng%2Fdatabase-benchmark-quarkus-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RHEcosystemAppEng","download_url":"https://codeload.github.com/RHEcosystemAppEng/database-benchmark-quarkus-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999840,"owners_count":21031044,"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":[],"created_at":"2024-11-05T14:13:23.600Z","updated_at":"2026-07-02T17:05:08.115Z","avatar_url":"https://github.com/RHEcosystemAppEng.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"- [Database Benchmark Quarkus(Java) Client](#database-benchmark-quarkus-java--client)\n  * [Requirements](#requirements)\n  * [Design notes](#design-notes)\n  * [Running the Database benchmark in Development mode](#running-the-database-benchmark-in-development-mode)\n    + [Launching the application](#launching-the-application)\n    + [Running the application by connecting to Mongo on Openshift](#running-the-application-by-connecting-to-mongo-on-openshift)\n    + [Running the application by setting up Postgres](#running-the-application-by-setting-up-postgres)\n    + [Running the benchmark](#running-the-benchmark)\n  * [Deploying the application on to Open Shift Cluster](#deploying-the-application-on-to-open-shift-cluster)\n  * [Running the Benchmark for multiple users](#running-the-benchmark-for-multiple-users)\n\n# Database Benchmark Quarkus(Java) Client\n\n## Requirements\n* Java 11\n* Maven 3.x\n* Internet accesses to download needed artifacts\n\n## Design notes\n * Configuration is defined in [application.properties](./src/main/resources/application.properties)\n\n## Running the Database benchmark in Development mode\n\n### Launching the application\n```shell\nmvn quarkus:dev\n```\n\n### Running the application by connecting to Mongo on Openshift\n\n```shell\n# Expose the mongo deployed on open shift cluster so that you can access it locally. Exposing mongo on port 34000.\noc port-forward mongodb-benchmark-replica-set-0 34000:27017\n\n# add/update the configuration in Application.properties\nquarkus.mongodb.connection-string=mongodb://localhost:34000\nquarkus.app.benchmark.database-kind=mongo\n\n# Connect to mongo using mongo CLI tool.\nmongo mongodb://developer:password@localhost:34000\n```\n\n### Running the application by setting up Postgres\n\n```shell\n# Or spin up postgres container \npodman run --name psql-container -p 5432:5432 -e POSTGRES_USER=newuser -e POSTGRES_PASSWORD=Password1 -e POSTGRES_DB=mydb postgres\n\n# Modify application.properties with the environment variables you set\nquarkus.app.benchmark.database-kind=rdbms\n\nquarkus.datasource.db-kind=postgresql\nquarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/mydb\nquarkus.datasource.username=newuser\nquarkus.datasource.password=password\n```\n\n\n### Running the benchmark\n\nThe client application exposes an API that can be used to start the test:\n```properties\nhttp://localhost:9090/benchmark/TYPE/DURATION/THREADS\n```\nWhere:\n* TYPE can be any of:\n  * `databaseWrite`: Does write to the database mentioned as part of the JDBC URL. At this moment only mongo supported. \n  * `databaseRead`: Does read to the database mentioned as part of the JDBC URL. At this moment only mongo supported and reads the record with ID=1. We can extend the functionality based on requirement.\n* DURATION is the duration in seconds of the test\n* THREADS is the number of parallel threads to spawn (AKA number of users)\n\n\n\nExamples:\n```shell\n curl -X GET http://localhost:9090/benchmark/databaseWrite/120/3\n```\nResult is in JSON format:\n```json\n{\n  \"noOfExecutions\" : 34135,\n  \"noOfFailures\" : 0,\n  \"minResponseTime\" : {\n    \"index\" : 615,\n    \"responseTime\" : 1\n  },\n  \"maxResponseTime\" : {\n    \"index\" : 9144,\n    \"responseTime\" : 80\n  },\n  \"averageResponseTime\" : 2,\n  \"percentile95\" : 3,\n  \"percentile99\" : 4,\n  \"totalTimeMillis\" : 74882,\n  \"elapsedTimeMillis\" : 30010,\n  \"requestsPerSecond\" : 1137.0\n}\n```\n**Note** The `index` attribute in `minResponseTime` and `maxResponseTime` represent the (first) index of the request \nfor which that time what calculated\n\n## Deploying the application on to Open Shift Cluster\nRefer [Deploying the application on to Open Shift Cluster](./open-shift/)\n\n## Running the Benchmark for multiple users\nRefer [Running the benchmark for multiple users in automated way](./scripts/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhecosystemappeng%2Fdatabase-benchmark-quarkus-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhecosystemappeng%2Fdatabase-benchmark-quarkus-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhecosystemappeng%2Fdatabase-benchmark-quarkus-client/lists"}