# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


catalog:
  - name: "Welcome"
    path: "/readme"
  - name: "Concepts and Designs"
    catalog:
      - name: "What is SkyWalking?"
        catalog:
          - name: "Overview and Core concepts"
            path: "/en/concepts-and-designs/overview"
          - name: "Project Goals"
            path: "/en/concepts-and-designs/project-goals"
      - name: "Probe"
        catalog:
          - name: "Introduction"
            path: "/en/concepts-and-designs/probe-introduction"
          - name: "Service Auto Instrument Agent"
            path: "/en/concepts-and-designs/service-agent"
          - name: "Manual Instrument SDK"
            path: "/en/concepts-and-designs/manual-sdk"
          - name: "Service Mesh probe"
            path: "/en/concepts-and-designs/service-mesh-probe"
      - name: "Backend"
        catalog:
          - name: "Overview"
            path: "/en/concepts-and-designs/backend-overview"
          - name: "Observability Analysis Language"
            path: "/en/concepts-and-designs/oal"
          - name: "Meter Analysis Language"
            path: "/en/concepts-and-designs/mal"
          - name: "Log Analysis Language"
            path: "/en/concepts-and-designs/lal"
          - name: "Query in OAP"
            path: "/en/protocols/readme#query-protocol"
      - name: "UI"
        path: "/en/concepts-and-designs/ui-overview"
      - name: "CLI"
        path: "https://github.com/apache/skywalking-cli"
      - name: "Event"
        path: "/en/concepts-and-designs/event/"

  - name: "Setup"
    catalog:
      - name: "Server Agents"
        path: "/en/setup/service-agent/server-agents"
      - name: "Browser Agent"
        path: "/en/setup/service-agent/browser-agent"
      - name: "Compatibility"
        path: "/en/setup/service-agent/agent-compatibility"
      - name: "Backend"
        catalog:
          - name: "Quick Start"
            path: "/en/setup/backend/backend-setup"
          - name: "Quick Start with Docker"
            path: "/en/setup/backend/docker"
          - name: "Configuration Vocabulary"
            path: "/en/setup/backend/configuration-vocabulary"
          - name: "Advanced Setup"
            catalog:
            - name: "Service Grouping"
              path: "/en/setup/backend/service-auto-grouping"
            - name: "Overriding Settings"
              path: "/en/setup/backend/backend-setting-override"
            - name: "IP And Port Setting"
              path: "/en/setup/backend/backend-ip-port"
            - name: "Backend Init Mode Startup"
              path: "/en/setup/backend/backend-init-mode"
            - name: "Cluster Management"
              path: "/en/setup/backend/backend-cluster"
            - name: "Choose Storage"
              path: "/en/setup/backend/backend-storage"
            - name: "Set Receivers"
              path: "/en/setup/backend/backend-receivers"
            - name: "Open Fetchers"
              path: "/en/setup/backend/backend-fetcher"
            - name: "Advanced Deployment Options"
              path: "/en/setup/backend/advanced-deployment"
            - name: "Data Lifecycle. Time To Live (TTL)"
              path: "/en/setup/backend/ttl"
            - name: "Group Parameterized Endpoints"
              path: "/en/setup/backend/endpoint-grouping-rules"
            - name: "Dynamical Logging"
              path: "/en/setup/backend/dynamical-logging"
            - name: "Security(SSL/TLS/mTLS)"
              path: "/en/setup/backend/grpc-security"
          - name: "Deploy In Kubernetes"
            path: "/en/setup/backend/backend-k8s"
          - name: "Tracing"
            catalog:
              - name: "Trace Sampling"
                path: "/en/setup/backend/trace-sampling"
              - name: "Detect Slow Database Statement"
                path: "/en/setup/backend/slow-db-statement"
              - name: "Uninstrumented Gateways"
                path: "/en/setup/backend/uninstrumented-gateways"
          - name: "Metrics"
            catalog:
              - name: "OAL Scripts"
                path: "/en/guides/backend-oal-scripts"
              - name: "OpenTelemetry Metrics Analysis"
                path: "/en/setup/backend/backend-receivers#opentelemetry-receiver"
              - name: "Meter Analysis"
                path: "/en/setup/backend/backend-meter"
              - name: "Apdex Threshold"
                path: "/en/setup/backend/apdex-threshold"
              - name: "Spring Sleuth Metrics Analysis"
                path: "/en/setup/backend/spring-sleuth-setup"
              - name: "Alarm"
                path: "/en/setup/backend/backend-alarm"
          - name: "Logging"
            catalog:
              - name: "Log Collecting And Analysis"
                path: "/en/setup/backend/log-analyzer"
          - name: "Self Observability"
            catalog:
              - name: "Backend Telemetry"
                path: "/en/setup/backend/backend-telemetry"
              - name: "Health Check"
                path: "/en/setup/backend/backend-health-check"
          - name: "Extension"
            catalog:
              - name: "Metrics Exporter"
                path: "/en/setup/backend/metrics-exporter"
              - name: "Dynamic Configuration"
                path: "/en/setup/backend/dynamic-config"
          - name: "Service Mesh"
            catalog:
              - name: "Observe Istio Control Plane"
                path: "/en/setup/istio/readme"
              - name: "Observe Service Mesh"
                path: "/en/setup/envoy/als_setting"
              - name: "Send Envoy Metrics to SkyWalking with / without Istio"
                path: "/en/setup/envoy/metrics_service_setting"
          - name: "Infrastructure Monitoring"
            catalog:
              - name: "VMs Monitoring"
                path: "/en/setup/backend/backend-vm-monitoring"
              - name: "K8s Monitoring"
                path: "/en/setup/backend/backend-k8s-monitoring"
      - name: "UI Setup"
        path: "/en/setup/backend/ui-setup"
      - name: "CLI Setup"
        path: "https://github.com/apache/skywalking-cli"
  - name: "UI Introduction"
    path: "/en/ui/readme"
  - name: "Contributing Guides"
    catalog:
      - name: "Contribute"
        path: "/en/guides/readme"
      - name: "Become A Committer"
        path: "/en/guides/asf/committer"
      - name: "Release Guide"
        path: "/en/guides/how-to-release/"
      - name: "Compiling Guide"
        path: "/en/guides/How-to-build"
  - name: "Protocols"
    path: "/en/protocols/readme"
  - name: "FAQs"
    path: "/en/FAQ/readme"
  - name: "Changelog"
    path: "https://github.com/apache/skywalking/tree/master/changes"





