mirror of
https://github.com/SigNoz/signoz.git
synced 2026-03-12 08:13:19 +00:00
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
302 lines
8.7 KiB
Markdown
302 lines
8.7 KiB
Markdown
# Onboarding Configuration Guide
|
|
|
|
This guide explains how to add new data sources to the SigNoz onboarding flow. The onboarding configuration controls the "New Source" / "Get Started" experience in SigNoz Cloud.
|
|
|
|
## Configuration File Location
|
|
|
|
The configuration is located at:
|
|
|
|
```
|
|
frontend/src/container/OnboardingV2Container/onboarding-configs/onboarding-config-with-links.json
|
|
```
|
|
|
|
## JSON Structure Overview
|
|
|
|
The configuration file is a JSON array containing data source objects. Each object represents a selectable option in the onboarding flow.
|
|
|
|
## Data Source Object Keys
|
|
|
|
### Required Keys
|
|
|
|
| Key | Type | Description |
|
|
|-----|------|-------------|
|
|
| `dataSource` | `string` | Unique identifier for the data source (kebab-case, e.g., `"aws-ec2"`) |
|
|
| `label` | `string` | Display name shown to users (e.g., `"AWS EC2"`) |
|
|
| `tags` | `string[]` | Array of category tags for grouping (e.g., `["AWS"]`, `["database"]`) |
|
|
| `module` | `string` | Destination module after onboarding completion |
|
|
| `imgUrl` | `string` | Path to the logo/icon **(SVG required)** (e.g., `"/Logos/ec2.svg"`) |
|
|
|
|
### Optional Keys
|
|
|
|
| Key | Type | Description |
|
|
|-----|------|-------------|
|
|
| `link` | `string` | Docs link to redirect to (e.g., `"/docs/aws-monitoring/ec2/"`) |
|
|
| `relatedSearchKeywords` | `string[]` | Array of keywords for search functionality |
|
|
| `question` | `object` | Nested question object for multi-step flows |
|
|
| `internalRedirect` | `boolean` | When `true`, navigates within the app instead of showing docs |
|
|
|
|
## Module Values
|
|
|
|
The `module` key determines where users are redirected after completing onboarding:
|
|
|
|
| Value | Destination |
|
|
|-------|-------------|
|
|
| `apm` | APM / Traces |
|
|
| `logs` | Logs Explorer |
|
|
| `metrics` | Metrics Explorer |
|
|
| `dashboards` | Dashboards |
|
|
| `infra-monitoring-hosts` | Infrastructure Monitoring - Hosts |
|
|
| `infra-monitoring-k8s` | Infrastructure Monitoring - Kubernetes |
|
|
| `messaging-queues-kafka` | Messaging Queues - Kafka |
|
|
| `messaging-queues-celery` | Messaging Queues - Celery |
|
|
| `integrations` | Integrations page |
|
|
| `home` | Home page |
|
|
| `api-monitoring` | API Monitoring |
|
|
|
|
## Question Object Structure
|
|
|
|
The `question` object enables multi-step selection flows:
|
|
|
|
```json
|
|
{
|
|
"question": {
|
|
"desc": "What would you like to monitor?",
|
|
"type": "select",
|
|
"helpText": "Choose the telemetry type you want to collect.",
|
|
"helpLink": "/docs/azure-monitoring/overview/",
|
|
"helpLinkText": "Read the guide →",
|
|
"options": [
|
|
{
|
|
"key": "logging",
|
|
"label": "Logs",
|
|
"imgUrl": "/Logos/azure-vm.svg",
|
|
"link": "/docs/azure-monitoring/app-service/logging/"
|
|
},
|
|
{
|
|
"key": "metrics",
|
|
"label": "Metrics",
|
|
"imgUrl": "/Logos/azure-vm.svg",
|
|
"link": "/docs/azure-monitoring/app-service/metrics/"
|
|
},
|
|
{
|
|
"key": "tracing",
|
|
"label": "Traces",
|
|
"imgUrl": "/Logos/azure-vm.svg",
|
|
"link": "/docs/azure-monitoring/app-service/tracing/"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
### Question Keys
|
|
|
|
| Key | Type | Description |
|
|
|-----|------|-------------|
|
|
| `desc` | `string` | Question text displayed to the user |
|
|
| `type` | `string` | Currently only `"select"` is supported |
|
|
| `helpText` | `string` | (Optional) Additional help text below the question |
|
|
| `helpLink` | `string` | (Optional) Docs link for the help section |
|
|
| `helpLinkText` | `string` | (Optional) Text for the help link (default: "Learn more →") |
|
|
| `options` | `array` | Array of option objects |
|
|
|
|
## Option Object Structure
|
|
|
|
Options can be simple (direct link) or nested (with another question):
|
|
|
|
### Simple Option (Direct Link)
|
|
|
|
```json
|
|
{
|
|
"key": "aws-ec2-logs",
|
|
"label": "Logs",
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"link": "/docs/userguide/collect_logs_from_file/"
|
|
}
|
|
```
|
|
|
|
### Option with Internal Redirect
|
|
|
|
```json
|
|
{
|
|
"key": "aws-ec2-metrics-one-click",
|
|
"label": "One Click AWS",
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"link": "/integrations?integration=aws-integration&service=ec2",
|
|
"internalRedirect": true
|
|
}
|
|
```
|
|
|
|
> **Important**: Set `internalRedirect: true` only for internal app routes (like `/integrations?...`). Docs links should NOT have this flag.
|
|
|
|
### Nested Option (Multi-step Flow)
|
|
|
|
```json
|
|
{
|
|
"key": "aws-ec2-metrics",
|
|
"label": "Metrics",
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"question": {
|
|
"desc": "How would you like to set up monitoring?",
|
|
"helpText": "Choose your setup method.",
|
|
"options": [...]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Examples
|
|
|
|
### Simple Data Source (Direct Link)
|
|
|
|
```json
|
|
{
|
|
"dataSource": "aws-elb",
|
|
"label": "AWS ELB",
|
|
"tags": ["AWS"],
|
|
"module": "logs",
|
|
"relatedSearchKeywords": [
|
|
"aws",
|
|
"aws elb",
|
|
"elb logs",
|
|
"elastic load balancer"
|
|
],
|
|
"imgUrl": "/Logos/elb.svg",
|
|
"link": "/docs/aws-monitoring/elb/"
|
|
}
|
|
```
|
|
|
|
### Data Source with Single Question Level
|
|
|
|
```json
|
|
{
|
|
"dataSource": "app-service",
|
|
"label": "App Service",
|
|
"imgUrl": "/Logos/azure-vm.svg",
|
|
"tags": ["Azure"],
|
|
"module": "apm",
|
|
"relatedSearchKeywords": ["azure", "app service"],
|
|
"question": {
|
|
"desc": "What telemetry data do you want to visualise?",
|
|
"type": "select",
|
|
"options": [
|
|
{
|
|
"key": "logging",
|
|
"label": "Logs",
|
|
"imgUrl": "/Logos/azure-vm.svg",
|
|
"link": "/docs/azure-monitoring/app-service/logging/"
|
|
},
|
|
{
|
|
"key": "metrics",
|
|
"label": "Metrics",
|
|
"imgUrl": "/Logos/azure-vm.svg",
|
|
"link": "/docs/azure-monitoring/app-service/metrics/"
|
|
},
|
|
{
|
|
"key": "tracing",
|
|
"label": "Traces",
|
|
"imgUrl": "/Logos/azure-vm.svg",
|
|
"link": "/docs/azure-monitoring/app-service/tracing/"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
### Data Source with Nested Questions (2-3 Levels)
|
|
|
|
```json
|
|
{
|
|
"dataSource": "aws-ec2",
|
|
"label": "AWS EC2",
|
|
"tags": ["AWS"],
|
|
"module": "logs",
|
|
"relatedSearchKeywords": ["aws", "aws ec2", "ec2 logs", "ec2 metrics"],
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"question": {
|
|
"desc": "What would you like to monitor for AWS EC2?",
|
|
"type": "select",
|
|
"helpText": "Choose the type of telemetry data you want to collect.",
|
|
"options": [
|
|
{
|
|
"key": "aws-ec2-logs",
|
|
"label": "Logs",
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"link": "/docs/userguide/collect_logs_from_file/"
|
|
},
|
|
{
|
|
"key": "aws-ec2-metrics",
|
|
"label": "Metrics",
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"question": {
|
|
"desc": "How would you like to set up EC2 Metrics monitoring?",
|
|
"helpText": "One Click uses AWS CloudWatch integration. Manual setup uses OpenTelemetry.",
|
|
"helpLink": "/docs/aws-monitoring/one-click-vs-manual/",
|
|
"helpLinkText": "Read the comparison guide →",
|
|
"options": [
|
|
{
|
|
"key": "aws-ec2-metrics-one-click",
|
|
"label": "One Click AWS",
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"link": "/integrations?integration=aws-integration&service=ec2",
|
|
"internalRedirect": true
|
|
},
|
|
{
|
|
"key": "aws-ec2-metrics-manual",
|
|
"label": "Manual Setup",
|
|
"imgUrl": "/Logos/ec2.svg",
|
|
"link": "/docs/tutorial/opentelemetry-binary-usage-in-virtual-machine/"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
### 1. Tags
|
|
|
|
- Use existing tags when possible: `AWS`, `Azure`, `GCP`, `database`, `logs`, `apm/traces`, `infrastructure monitoring`, `LLM Monitoring`
|
|
- Tags are used for grouping in the sidebar
|
|
- Every data source must have at least one tag
|
|
|
|
### 2. Search Keywords
|
|
|
|
- Include variations of the name (e.g., `"aws ec2"`, `"ec2"`, `"ec2 logs"`)
|
|
- Include common misspellings or alternative names
|
|
- Keep keywords lowercase and alphabetically sorted
|
|
|
|
### 3. Logos
|
|
|
|
- Place logo files in `public/Logos/`
|
|
- Use SVG format
|
|
- Reference as `"/Logos/your-logo.svg"`
|
|
|
|
### 4. Links
|
|
|
|
- Docs links should start with `/docs/` (will be prefixed with DOCS_BASE_URL)
|
|
- Internal app links should start with `/integrations`, `/services`, etc.
|
|
- Only use `internalRedirect: true` for internal app routes
|
|
|
|
### 5. Keys
|
|
|
|
- Use kebab-case for `dataSource` and option `key` values
|
|
- Make keys descriptive and unique
|
|
- Follow the pattern: `{service}-{subtype}-{action}` (e.g., `aws-ec2-metrics-one-click`)
|
|
|
|
## Adding a New Data Source
|
|
|
|
1. Add your data source object to the JSON array
|
|
2. Ensure the logo exists in `public/Logos/`
|
|
3. Test the flow locally with `yarn dev`
|
|
4. Validation:
|
|
- Navigate to the [onboarding page](http://localhost:3301/get-started-with-signoz-cloud) on your local machine
|
|
- Data source appears in the list
|
|
- Search keywords work correctly
|
|
- All links redirect to the correct pages
|
|
- Questions display correct help text and links
|
|
- Tags are used for grouping in the UI sidebar
|
|
- Clicking on Configure redirects to the correct page
|