Contributing to OpenTelemetry Demo Webstore
Welcome to the OpenTelemetry Demo Webstore repository! This guide is designed to help you get started with contributing to the project. Before diving in, it’s essential to familiarize yourself with the OpenTelemetry project’s general contributing guidelines. You can find them here.
Join a SIG Call
Joining the OpenTelemetry community is an excellent way to learn and contribute. The team meets weekly on Monday’s at 8:15 AM PT. Check the OpenTelemetry community calendar for specific dates and Zoom meeting links. Meeting notes are available as a public Google doc.
Sign the CLA
Before you can contribute, you will need to sign the Contributor License Agreement.
Find a Buddy and Get Started Quickly
If you’re looking for guidance on getting started with your first contribution, join the OpenTelemetry community Slack channel and find a buddy!
- Create your CNCF Slack account.
- Join the otel-community-demo channel.
- Post an introduction, your area of interest, and your request for a buddy.
Your OpenTelemetry buddy is there to help you understand the contributing process, provide context, review PRs, and answer any questions you may have.
Development Environment
To contribute to the OpenTelemetry Demo Webstore, you’ll need the following prerequisites:
- Docker
- Docker Compose v2.0.0+
Clone Repository
- Clone the repository:
git clone https://github.com/open-telemetry/opentelemetry-demo.git
Open Folder
Navigate to the cloned folder:
cd opentelemetry-demo/
Gradle Update [Windows Only]
Navigate to the Java Ad Service folder to install and update Gradle:
cd .\src\adservice\
.\gradlew installDist
.\gradlew wrapper --gradle-version 7.4.2
Run Docker Compose
Start the demo:
docker compose up -d
Verify the Webstore & the Telemetry
Access the following services:
- Webstore: http://localhost:8080/
- Jaeger: http://localhost:8080/jaeger/ui/
- Grafana: http://localhost:8080/grafana/
- Feature Flags UI: http://localhost:8080/feature/
- Load Generator UI: http://localhost:8080/loadgen/
Create Your First Pull Request
How to Send Pull Requests
- Fork the project in GitHub and clone the upstream repo:
git clone https://github.com/open-telemetry/opentelemetry-demo.git
- Navigate to the repo root:
cd opentelemetry-demo
- Add your fork as an origin:
git remote add fork https://github.com/YOUR_GITHUB_USERNAME/opentelemetry-demo.git
- Check out a new branch, make modifications, and push the branch to your fork:
$ git checkout -b feature
# change files
# Test your changes locally.
$ docker compose up -d --build
# Go to Webstore, Jaeger or docker container logs etc. as appropriate to make sure your changes are working correctly.
$ git add my/changed/files
$ git commit -m "short description of the change"
$ git push fork feature
- Open a pull request against the main
opentelemetry-demo
repo.
How to Receive Comments
- Make sure your PR is not marked as
draft
. - Ensure the CLA is signed, and all required CI checks are clear.
- Submit small, focused PRs addressing a single concern/issue.
- Make sure the PR title reflects the contribution.
- Write a summary that helps understand the change.
- Include usage examples in the summary, where applicable.
- Include benchmarks (before/after) in the summary, for contributions that are performance enhancements.
How to Get PRs Merged
A PR is considered ready to merge when:
- It has received approval from Approvers/Maintainers.
- Major feedbacks are resolved.
- It has been open for review for at least one working day.
- The documentation and Changelog have been updated to reflect the new changes.
- Trivial changes (typo, cosmetic, doc, etc.) don’t have to wait for one day.
Any Maintainer can merge the PR once it is ready to merge. Note that some PRs may not be merged immediately if the repo is in the process of a release and maintainers decide to defer the PR to the next release train.
If a PR has been stuck, the owner should try to get people aligned by:
- Consolidating perspectives and putting a summary in the PR.
- Tagging subdomain experts.
- Reaching out to more people on the CNCF OpenTelemetry Community Demo Slack channel.
- Narrowing down the scope of the PR or splitting it up.
- If none of the above worked and the PR has been stuck for more than 2 weeks, bring it to the OpenTelemetry Community Demo SIG meeting.
Making a new release
Maintainers can create a new release when desired by following these steps:
- Create a new Pull Request that updates the
IMAGE_VERSION
environment variable in.env
to the new version number. - Draft a new release, creating a new tag in the format
x.x.x
based on main. Automatically generate release notes. Prepend a summary of the major changes to the release notes. - Click ‘Publish Release’.
For more information, refer to the OpenTelemetry Demo documentation.