gobench-io / gobench Goto Github PK
View Code? Open in Web Editor NEWA benchmark framework based on Golang
License: Apache License 2.0
A benchmark framework based on Golang
License: Apache License 2.0
I want to enhance Gobench with support for multiple deployment options to make it more accessible and convenient for users. The following deployment options should be considered:
By supporting these deployment options, we aim to make Gobench more accessible and adaptable to various deployment scenarios. I welcome input, contributions, and suggestions from the community to help implement and improve these deployment options.
Please share your thoughts, ideas, or any additional deployment options that you think would be valuable for Gobench.
Thank you for your support and collaboration!
Documentation: Create clear and detailed documentation for each deployment option, including step-by-step instructions, configuration parameters, and any prerequisites or dependencies. This will help users understand how to deploy Gobench using different methods.
Examples and Templates: Provide sample configurations, Dockerfiles, Kubernetes manifests, Helm charts, and Terraform scripts as examples. These examples will serve as starting points for users to customize and adapt Gobench deployment to their specific needs.
Integration Testing: Set up automated integration tests that validate the deployment options. This will help ensure that Gobench can be successfully deployed and run using different methods, providing confidence to users.
Version Compatibility: Specify the compatibility of Gobench with different deployment options, including the minimum required versions of Docker, Kubernetes, Helm, and Terraform. Regularly update and test Gobench against new versions to ensure ongoing compatibility.
Continuous Integration/Deployment (CI/CD): Integrate Gobench's deployment options into Github Action to automate the building and testing of Docker images, Helm charts, and Terraform scripts. This ensures that changes and updates to the deployment options are thoroughly tested.
Create a video for Gobench's quick start. This's very helpful for people to quickly understand how to use Gobench.
I think we should not use caret when setting up the environment in CI to avoid compatible issues between deps.
Currently:
- name: Set up Go 1.16
uses: actions/setup-go@v2
with:
go-version: ^1.16
id: go
- name: Set up Nodejs 14
uses: actions/setup-node@v2
with:
node-version: ^14.15
id: node
CI will use Go 1.20.5 and Node 14.21.3
The current Gobench UI requires a license. Therefore, we change to another template.
π We are seeking contributions to enhance the UI functionality of Gobench v2! We aim to implement a new feature that allows users to easily GET/SET target server resource information within the Gobench application. This feature might link to Grafana or get metrics from other metric servers like Prometheus.
π Task:
Create an intuitive user interface that enables users to input and modify target server resource information, such as CPU, Memory, Network In/Out, and other relevant metrics. Additionally, implement a feature to fetch and display the existing server resource information for reference.
π‘ Possible Integrations:
Explore the possibility of integrating Gobench with Grafana or other metric servers like Prometheus. Users should be able to seamlessly import resource metrics from these external sources and utilize them for more comprehensive benchmarking analysis.
π» Skills Needed:
π Join our open-source community and contribute to the success of Gobench v2. Your contributions will empower users to seamlessly configure their target server resource information, link to external metrics sources, and streamline the benchmarking process with valuable insights.
π If you're interested in collaborating with us on this UI enhancement, leave a comment on this issue to express your interest. Let's work together to make target server resource management and metric integration a breeze for our users!
Tech task:
Consider using this pkg https://github.com/peterbourgon/ff
From HuyHa: Suggestion use library cli https://github.com/spf13/cobra
I had a prototype here https://github.com/nqd/gobench/blob/topology/main.go#L22 but used as ref
When running in distributed mode, the master needs to know the working agents.
We will implement a simple heartbeat via gRPC to check for liveness of master and agent.
Tech tasks:
Replace the current chart (Apexcharts) with a better chart (Victory is recommended, itβs supports zoom for large data: https://formidable.com/open-source/victory/guides/zoom-on-large-datasets).
Demo play around with Victory chart: https://react-49ulrq.stackblitz.io/
Code: https://stackblitz.com/edit/react-49ulrq?file=src%2FApp.js
Using a new UI template (Prime react is recommended) or keep current (antd) and upgrade to latest version.
Able to group applications by tags.
π We need your help to enhance the UI functionality of Gobench v2! We are looking to add a new feature that allows users to compare benchmark results of two Gobench applications effortlessly.
The UI feature enables users to select and view benchmark results from two different Gobench applications side by side, facilitating comparison between the two sets of data. This can be valuable for users who want to analyze and contrast the performance or metrics of their applications under different conditions or configurations.
By offering the ability to compare benchmark results, users can gain deeper insights into their application's performance and identify any variations or improvements between the two test runs.
π Task:
Implement a side-by-side comparison view where users can select and visualize the benchmark results from two different Gobench applications. This feature will empower users to analyze performance variations, identify trends, and make data-driven decisions for their applications.
π» Skills Needed:
π Join our open-source community and make a significant impact on the Gobench project. Your contributions will help users gain deeper insights into their applications' performance and foster better decision-making.
π If you're excited to collaborate with our team and tackle this UI challenge, leave a comment on this issue to express your interest and get started!
Homepage Wireframe: Create a wireframe for the homepage that showcases key features, project statistics, and navigation elements. Consider the layout, call-to-action buttons, and any important information that should be displayed on the homepage.
Benchmarking Scenario Creation: Design wireframes for the benchmarking scenario creation process. This includes defining the inputs, parameters, and options for setting up different benchmark scenarios. Consider providing clear guidance and validation messages to assist users in creating scenarios correctly.
Scenario Dashboard: Create wireframes for the scenario dashboard, where users can view and manage their created benchmark scenarios. Include options for editing, duplicating, and deleting scenarios, as well as relevant statistics and status indicators.
Result Visualization: Design wireframes for visualizing benchmarking results. Include graphs, charts, and other visual elements to represent data in an informative and easy-to-understand manner.
User Settings and Authentication: Create wireframes for user settings and authentication pages, allowing users to manage their accounts, update preferences, and securely log in/out of the application.
Responsive Design: Ensure that the wireframes consider responsive design principles, providing a consistent and user-friendly experience across different devices and screen sizes.
Provide an API for Frontend to get some statistic counters like total Gobench applications, total healthy agents, total scenarios, etc.
Sometimes, the Gobench UI show popup request failed
or request data not found
or request data does not exist
. It's might be a problem when we deploy Gobench on a cross-region. For example, I deployed Gobench in the US but I access the Gobench UI from Vietnam. So, the response time for each request is high and the request was time out.
I increase the request timeout for Axios
(an HTTP client library).
π We are looking for contributors to enhance the UI functionality of Gobench v2! Our goal is to introduce a new feature that enables users to export benchmark results for easy reporting and analysis.
π Task:
Implement a user-friendly export feature that allows users to download benchmark results in various formats, such as CSV, JSON, or PDF. This functionality will empower users to generate reports, share data with stakeholders, and perform further analysis.
π» Skills Needed:
π Join our open-source community and contribute to the success of Gobench v2. Your efforts will facilitate seamless data reporting and add value to users' benchmarking experience.
π If you're interested in collaborating with us on this UI enhancement, leave a comment on this issue to express your interest. Let's work together to make data export a breeze for our users!
At the moment, we are creating an application as a form in the Application list.
Should we split them into 2 pages?
The installation document is out of date because of the deprecation of 'go get' for installing executables.
We will use go install
instead go get
.
Example to install the latest binary from the master branch
go install github.com/gobench-io/gobench@master
Replace redux-saga with redux-toolkit, which is popular used with React to handle fetching API data and state management. The Redux toolkit will also support interval polling, and caching data and will improve application performance.
One linter for this project
A summary results for each scenario can help us save more time to check the error of a scenario.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.