docs/contributing/development.md
Welcome! This guide will help you set up your local development environment for SigNoz. Let's get you started! 🚀
Before diving in, make sure you have these tools installed:
Git - Our version control system
Go - Powers our backend
Node - Powers our frontend
Yarn - Our frontend package manager
Docker - For running Clickhouse and Postgres locally
💡 Tip: Run
make helpto see all available commands with descriptions
git clone https://github.com/SigNoz/signoz.git
cd signoz
SigNoz has three main components: Clickhouse, Backend, and Frontend. Let's set them up one by one.
First, we need to get ClickHouse running:
make devenv-clickhouse
This command:
Next, start the OpenTelemetry Collector to receive telemetry data:
make devenv-signoz-otel-collector
This command:
💡 Quick Setup: Use
make devenv-upto start both ClickHouse and OTel Collector together
Run the backend server:
make go-run-community
Verify it's working:
curl http://localhost:8080/api/v1/health
You should see: {"status":"ok"}
💡 Tip: The API server runs at
http://localhost:8080/by default
Navigate to the frontend directory:
cd frontend
Install dependencies:
yarn install
Create a .env file in this directory:
VITE_FRONTEND_API_ENDPOINT=http://localhost:8080
Start the development server:
yarn dev
💡 Tip:
yarn devwill automatically rebuild when you make changes to the code
Now you're all set to start developing! Happy coding! 🎉
To verify everything is working correctly:
curl http://localhost:8123/ping (should return "Ok.")curl http://localhost:13133 (should return health status)curl http://localhost:8080/api/v1/health (should return {"status":"ok"})http://localhost:3301 in your browserYou can now send telemetry data to your local SigNoz instance:
localhost:4317localhost:4318For example, using curl to send a test trace:
curl -X POST http://localhost:4318/v1/traces \
-H "Content-Type: application/json" \
-d '{"resourceSpans":[{"resource":{"attributes":[{"key":"service.name","value":{"stringValue":"test-service"}}]},"scopeSpans":[{"spans":[{"traceId":"12345678901234567890123456789012","spanId":"1234567890123456","name":"test-span","startTimeUnixNano":"1609459200000000000","endTimeUnixNano":"1609459201000000000"}]}]}]}'