Files
signoz/docs/contributing/onboarding.md
Vishal Sharma 54b80c3949
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
feat: add new onboarding partner logos and update documentation to enforce SVG format (#10120)
2026-01-27 17:33:22 +00:00

8.7 KiB

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:

{
  "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):

{
  "key": "aws-ec2-logs",
  "label": "Logs",
  "imgUrl": "/Logos/ec2.svg",
  "link": "/docs/userguide/collect_logs_from_file/"
}

Option with Internal Redirect

{
  "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)

{
  "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

{
  "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

{
  "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)

{
  "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"
  • 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 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