From ab28ae38bbdfa80dacf61e7ca35b6029af5dd115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adnan=20Rahi=C4=87?= Date: Mon, 12 Aug 2024 10:44:27 +0200 Subject: [PATCH] docs(structure + onprem): revamped nav + new onprem install (#3953) docs(structure + onprem): revamped nav and updated install to include onprem --- README.md | 2 +- docs/docs/cli/cli-installation-reference.mdx | 1 - .../docs/configuration/tracetest-analyzer.mdx | 38 +- docs/docs/core/deployment/docker.mdx | 69 -- docs/docs/core/deployment/kubernetes.mdx | 97 -- docs/docs/core/deployment/overview.mdx | 60 - .../core/getting-started/installation.mdx | 300 ----- docs/docs/core/getting-started/open.mdx | 151 --- docs/docs/core/getting-started/overview.mdx | 293 ++++- docs/docs/getting-started/installation.mdx | 45 + docs/docs/getting-started/overview.mdx | 2 +- docs/docs/index.mdx | 2 +- docs/docusaurus.config.js | 16 +- docs/sidebars.js | 1006 ++++++++--------- .../CoreGettingStartedGuide/index.tsx | 78 -- .../components/GettingStartedGuide/index.tsx | 2 +- docs/src/components/WelcomeGuide/index.tsx | 16 +- 17 files changed, 836 insertions(+), 1342 deletions(-) delete mode 100644 docs/docs/core/deployment/docker.mdx delete mode 100644 docs/docs/core/deployment/kubernetes.mdx delete mode 100644 docs/docs/core/deployment/overview.mdx delete mode 100644 docs/docs/core/getting-started/installation.mdx delete mode 100644 docs/docs/core/getting-started/open.mdx delete mode 100644 docs/src/components/CoreGettingStartedGuide/index.tsx diff --git a/README.md b/README.md index dc6d1a2408..caa0bc1766 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ Get the same experience as with the Cloud-based Managed Tracetest but self-hoste ## Hobby Self-hosted Open-source Tracetest Core -[Deploy a hobby self-hosted instance of Tracetest Core](https://docs.tracetest.io/core/getting-started/installation) as a Docker container. It's not suitable for production, but a great way to start using Tracetest Core in local environments. +[Deploy a hobby self-hosted instance of Tracetest Core](https://docs.tracetest.io/core/getting-started/overview) as a Docker container. It's not suitable for production, but a great way to start using Tracetest Core in local environments. ### 1️⃣ Install the Tracetest CLI diff --git a/docs/docs/cli/cli-installation-reference.mdx b/docs/docs/cli/cli-installation-reference.mdx index 8edcc1345d..6bb4b65f8e 100644 --- a/docs/docs/cli/cli-installation-reference.mdx +++ b/docs/docs/cli/cli-installation-reference.mdx @@ -18,7 +18,6 @@ This page contains a reference of all options for installing Tracetest CLI. Tracetest has a command line interface (CLI) which includes: - [Tracetest Agent](/configuration/agent): Enables Tracetest to access your application under test and to ingest trace data from your OpenTelemetry Collector or tracing backend. -- [Tracetest Core Install Wizard](/core/getting-started/installation): Helps install the Tracetest Core Server into Docker or Kubernetes. The CLI is used to run tests, download or upload tests, and manage Tracetest capability and resources. diff --git a/docs/docs/configuration/tracetest-analyzer.mdx b/docs/docs/configuration/tracetest-analyzer.mdx index a18f273d3b..7100adad3b 100644 --- a/docs/docs/configuration/tracetest-analyzer.mdx +++ b/docs/docs/configuration/tracetest-analyzer.mdx @@ -1,7 +1,7 @@ --- id: tracetest-analyzer -title: Tracetest Analyzer Settings -description: Tracetest Analyzer is provided in the Tracetest application to aid in the analysis of traces and easily pinpoint issues to speed up resolution. +title: Trace Analyzer Settings +description: Trace Analyzer is provided in the Tracetest application to aid in the analysis of traces and easily pinpoint issues to speed up resolution. keywords: - tracetest - trace-based testing @@ -11,37 +11,15 @@ keywords: image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg --- -Tracetest Analyzer is provided in the Tracetest application to aid in the analysis of traces and easily pinpoint issues to speed up resolution. +The Trace Analyzer is provided in the Tracetest application to aid in the analysis of traces and easily pinpoint issues to speed up resolution. Every time you run a test the trace will be analyzed and provide a score. :::tip -[Read more about Tracetest Analyzer concepts here.](/analyzer/concepts) +[Read more about Trace Analyzer concepts here.](/analyzer/concepts) ::: -## Create a Test - -For this example, we will use the Pokemon List test provided in the Tracetest Pokeshop demo. - -Start Tracetest, click the **Create** button and select **Create New Test** in the drop down: - -![Create a Test Button](../img/analyzer-create-test.png) - -Select the **HTTP Request** trigger and click **Next**: - -![Select HTTP Trigger](../img/analyzer-create-new-http-request.png) - -Select **Pokemon List** and click **Next**: - -![Select Pokeshop List](../img/analyzer-pokeshop-list.png) - -![Select Pokeshop List Next](../img/analyzer-pokeshop-list-next.png) - -Leave the default values and click **Create and Run**: - -![Select Pokeshop Create Run ](../img/analyzer-pokeshop-list-create-run.png) - ## View the Trace Analyzer Results -The Tracetest Analyzer results help teams improve their instrumentation data, find potential problems and provide tips to fix the problems. +The Trace Analyzer results help teams improve their instrumentation data, find potential problems and provide tips to fix the problems. ![Analyzer Results](../img/analyzer-results.png) @@ -49,7 +27,7 @@ Click the arrow next to any category to see suggestions for trace improvements: ![Analyzer Results Expanded](../img/analyzer-expanded.png) -## Disable Tracetest Analyzer +## Disable Trace Analyzer In the Tracetest UI, go to **Settings** and the **Analyzer** tab: @@ -61,6 +39,6 @@ Here, you can also set the thresholds for `Otel Semantic Conventions`, `Common P ![Analyzer Settings 2](../img/analyzer-settings-2.png) -## Tracetest Analyzer in the CLI +## Trace Analyzer in the CLI -You can use Tracetest Analyzer in the CLI to analyze per individual test. Visit the [Creating Transactions](/web-ui/creating-test-suites) page for details. +You can use Trace Analyzer in the CLI to analyze per individual test. diff --git a/docs/docs/core/deployment/docker.mdx b/docs/docs/core/deployment/docker.mdx deleted file mode 100644 index b1037c19ec..0000000000 --- a/docs/docs/core/deployment/docker.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -id: docker -title: Docker Deployment -description: Guides for deploying Tracetest Core with Docker. Tracetest Core allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. -keywords: - - tracetest - - trace-based testing - - observability - - distributed tracing - - testing -image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg ---- - -This guide walks you through using the Tracetest CLI to deploy Tracetest Core with Docker. - -:::note -This is an example of a production-ready deployment, but real-world deployments can vary significantly depending on desired performance and scale. -::: - -Tracetest Core runs in parallel with your Dockerized application, allowing you to interact with your app and its traces, including create and run tests against them. - -After installing the CLI, run: - -```bash -tracetest server install -``` - -```bash title="Expected output" -How do you want to run TraceTest? [type to search]: -> Using Docker Compose - Using Kubernetes -``` - -Select `Using Docker Compose` and follow the instructions. - -**Tools required (installed if missing)**: - -- Docker -- Docker Compose - -**Optionals**: - -- [PokeShop demo app](https://github.com/kubeshop/pokeshop/). A sample microservice app to test your Tracetest installation. -- [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/). A trace collector, that receives telemetry of other applications and sent it to Tracetest. - -**Result**: - -- `tracetest/` directory (configurable) with a `docker-compose.yaml` and other config files. -- [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/), if selected. -- [PokeShop demo app](https://github.com/kubeshop/pokeshop/), if selected. - -**How to start**: - -In the folder where you ran `tracetest server install`, run this command to start the Tracetest cluster: - -```bash -docker compose -f tracetest/docker-compose.yaml up -d -``` - -```bash title="Condensed expected output from the Tracetest container:" -Starting tracetest ... -... -2022/11/28 18:24:09 HTTP Server started -... -``` - -Then launch a browser to [http://localhost:11633/](http://localhost:11633/). - -For more configuration options, visit the [configuration docs](/configuration/overview.mdx). diff --git a/docs/docs/core/deployment/kubernetes.mdx b/docs/docs/core/deployment/kubernetes.mdx deleted file mode 100644 index 4ac0b73be6..0000000000 --- a/docs/docs/core/deployment/kubernetes.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: kubernetes -title: Kubernetes Deployment -description: Guides for deploying Tracetest Core in Kubernetes. Tracetest Core allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. -keywords: - - tracetest - - trace-based testing - - observability - - distributed tracing - - testing -image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -This guide walks you through deploying Tracetest Core in Kubernetes. - -:::note -This is an example of a production-ready deployment, but real-world deployments can vary significantly depending on desired performance and scale. -This setup is ideal for CI/CD environments and QA teams working in shared environments. You can use a remote or local ([minikube](https://minikube.sigs.k8s.io/docs/start/), [kind](https://kind.sigs.k8s.io/), [k3d](https://k3d.io/), etc) cluster. -::: - -You have two options to install Tracetest Core in Kubernetes: - -- Using the [Tracetest CLI](/core/getting-started/installation) to guide your installation -- Using the official [Helm chart](https://github.com/kubeshop/helm-charts/tree/main/charts/tracetest) - - - - -First, install Tracetest CLI following the instructions on [Getting Started](/core/getting-started/installation#install-the-tracetest-cli). - -After installing the CLI, run: - -```bash -tracetest server install -``` - -```bash title="Expected output" -How do you want to run TraceTest? [type to search]: - Using Docker Compose -> Using Kubernetes -``` - -Select `Using Kubernetes` and follow the instructions. - -**Tools required (installed if missing)**: -- kubectl -- Helm - -**Optionals**: -- [PokeShop demo app](https://github.com/kubeshop/pokeshop/). A sample microservice app to test your Tracetest installation. -- [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/). A trace collector, that receives telemetry of other applications and sent it to Tracetest. - -**Result**: -- `tracetest` Helm chart deployed in the `tracetest` (configurable) namespace. -- [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) deployed in the `tracetest` (configurable) namespace, if selected. -- [PokeShop demo app](https://github.com/kubeshop/pokeshop/) deployed in the `demo` namespace, if selected. - -**How to start**: - -Once installed, you can get started by launching Tracetest: - -```sh -kubectl port-forward svc/tracetest 11633 -``` - -Then launch a browser to [http://localhost:11633/](http://localhost:11633/). - - - - -First, be sure that you have [Helm](https://helm.sh/) installed in your machine. - -The Tracetest Helm charts are located [here](https://github.com/kubeshop/helm-charts/tree/main/charts/tracetest). - -You can install them locally on your machine with the command: -```sh -helm repo add kubeshop https://kubeshop.github.io/helm-charts -helm repo update -``` - -After that, you can install Tracetest with `helm install`: -```sh -helm install tracetest kubeshop/tracetest --namespace=tracetest --create-namespace -``` - -Or, generate a manifest file and apply it manually in your Kubernetes cluster: -```sh -helm template tracetest kubeshop/tracetest > tracetest-kubernetes-manifests.yaml -kubectl apply -f ./tracetest-kubernetes-manifests.yaml -``` - - - -For more configuration options, visit the [configuration docs](/configuration/overview.mdx). diff --git a/docs/docs/core/deployment/overview.mdx b/docs/docs/core/deployment/overview.mdx deleted file mode 100644 index e9faf59ab2..0000000000 --- a/docs/docs/core/deployment/overview.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: overview -title: Deployment -description: Guides for deploying Tracetest Core. Tracetest Core allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. -keywords: - - tracetest - - trace-based testing - - observability - - distributed tracing - - testing -image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg ---- - -This section contains a general overview of deploying Tracetest in production. You can find platform-specific guides for: - -- [Docker](/core/deployment/docker) -- [Kubernetes](/core/deployment/kubernetes) - -As shown in the diagram below, a typical production Tracetest deployment consists of Postgres, an OpenTelemetry Colletor and a [trace data store](/configuration/overview.mdx). But, if you do not want to use a trace data store, you can rely entirely on OpenTelemetry Collector. - -```mermaid -flowchart TD - A(("Tracetest")) - B[(Postgres)] - C(OpenTelemetry Collector) - D("Trace data store (optional)") - - - A <--> |Tracetest stores test run data in Postgres| B - C --> |OTel Collector sends traces to the trace data store| D - D --> |Tracetest fetches traces to enrich e2e and integration tests| A - - classDef tracetest fill:#61175e,stroke:#61175e,stroke-width:4px,color:#ffffff; - - class A tracetest -``` - -Postgres stores all Tracetest-related data. - -OpenTelemetry Collector ingests traces from your distributed system and forwards them to a trace data store. - -A trace data store is used to store traces. Tracetest will fetch trace data from the trace data store when running tests. - -Tracetest can be configured via a configuration file: - -```yaml -# tracetest.yaml - -postgres: - host: postgres - user: postgres - password: postgres - port: 5432 - dbname: postgres - params: sslmode=disable -``` - -Read more in the [configuration docs](/configuration/overview.mdx). - -Or, continue reading to see how to run Tracetest Core in production with [Docker](/core/deployment/docker) or [Kubernetes](/core/deployment/kubernetes). diff --git a/docs/docs/core/getting-started/installation.mdx b/docs/docs/core/getting-started/installation.mdx deleted file mode 100644 index 9c69a837e1..0000000000 --- a/docs/docs/core/getting-started/installation.mdx +++ /dev/null @@ -1,300 +0,0 @@ ---- -id: installation -title: Installing Tracetest Core -description: Get started with installing Tracetest Core. Tracetest Core allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. -keywords: - - tracetest - - trace-based testing - - observability - - distributed tracing - - testing -image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; -import GtagInstallCliTabs from '@site/src/components/GtagInstallCliTabs'; - -This page showcases getting started with Tracetest Core by using the Tracetest CLI, Docker, or Kubernetes. - -This simple installation includes a demo app called [Pokeshop](/live-examples/pokeshop/overview) that will be installed alongside Tracetest Core. It shows how to configure OpenTelemetry and Tracetest Core and the architecture of the Pokeshop sample app. - -## Install the Tracetest CLI - - - -:::tip Want more info? -Read the CLI installation reference [here](/cli/cli-installation-reference). -::: - -## Install the Tracetest Server - -Tracetest Core runs as a standalone container. It runs a Server and exposes a Web UI on port `11633`. - -You have three options to install Tracetest Server: - -- Using the Tracetest CLI to guide your installation in Docker and Kubernetes. -- Using the official [Helm chart](https://github.com/kubeshop/helm-charts/tree/main/charts/tracetest). -- Using the [Docker Compose Quick Start with the Pokeshop Sample App](https://github.com/kubeshop/tracetest/tree/main/examples/quick-start-pokeshop). - - - - -```bash title="Terminal" -tracetest server install -``` - - - - - {`How do you want to run Tracetest? [type to search]: -> Using Docker Compose - Using Kubernetes`} - - -Choose to install Tracetest with the OpenTelemetry Collector and the [Pokeshop](/live-examples/pokeshop/overview) sample app. - -```text title="Expected output:" -Do you have OpenTelemetry based tracing already set up, or would you like us to install a demo tracing environment and app? [type to search]: - I have a tracing environment already. - Just install Tracetest. -> Just learning tracing! Install Tracetest, OpenTelemetry Collector and the sample app. -``` - -Choosing any option, this installer will create a `tracetest` directory in the current directory and add a `docker-compose.yaml` file to it. - -- If you choose the first option, the `docker-compose.yaml` will have only Tracetest Core and its dependencies. -- **By choosing the second option, a sample app called [Pokeshop](/live-examples/pokeshop/overview) will be installed with Tracetest Core, allowing you to create sample tests right away!** - -
- - Click to view Pokeshop Sample App Architecture - - -Here's the Architecture of the Pokeshop Sample App: - -- an **API** that serves client requests, -- a **Worker** who deals with background processes. - -The communication between the API and Worker is made using a `RabbitMQ` queue, and both services emit telemetry data to OpenTelemetry Collector and communicate with a Postgres database. - -Tracetest triggers tests against the Node.js API. - -```mermaid -flowchart TD - A[(Redis)] - B[(Postgres)] - C(Node.js API) - D(RabbitMQ) - E(Worker) - F(OpenTelemetry Collector) - G(Tracetest) - - G --> C - F --> G - C --> A - C --> B - C --> D - D --> E - E --> B - C --> F - E --> F - - -``` -
- -**Start Docker Compose from the directory where you ran `tracetest server install`.** - - -{`docker compose -f tracetest/docker-compose.yaml up -d`} - - -This will start the Tracetest Server and expose the Web UI on [`http://localhost:11633`](http://localhost:11633). - -
- - - {`How do you want to run TraceTest? [type to search]: - Using Docker Compose -> Using Kubernetes`} - - -Choose to install Tracetest Core with the OpenTelemetry Collector and the [Pokeshop](/live-examples/pokeshop/overview) sample app. - -```text title="Expected output:" -Do you have OpenTelemetry based tracing already set up, or would you like us to install a demo tracing environment and app? [type to search]: - I have a tracing environment already - Just install Tracetest. -> Just learning tracing! Install Tracetest, OpenTelemetry Collector and the sample app. -``` - -Choosing any option, this installer will create a `tracetest` namespace in the Kubernetes context you choose and create deployments for Tracetest Core and its dependencies. - -- If you choose the first option, the `tracetest` namespace will only contain Tracetest Core and its dependencies. -- **By choosing the second option, a sample app called [Pokeshop](/live-examples/pokeshop/overview) will be installed in a `demo` namespace alongside Tracetest Core, allowing you to create sample tests right away!** - -
- - Click to view Pokeshop Sample App Architecture - - -Here's the Architecture of the Pokeshop Sample App: - -- an **API** that serves client requests, -- a **Worker** who deals with background processes. - -The communication between the API and Worker is made using a `RabbitMQ` queue, and both services emit telemetry data to OpenTelemetry Collector and communicate with a Postgres database. - -Tracetest triggers tests against the Node.js API. - -```mermaid -flowchart TD - A[(Redis)] - B[(Postgres)] - C(Node.js API) - D(RabbitMQ) - E(Worker) - F(OpenTelemetry Collector) - G(Tracetest) - - G --> C - F --> G - C --> A - C --> B - C --> D - D --> E - E --> B - C --> F - E --> F - - -``` -
- -**Access the Tracetest Server by port forwarding to the Tracetest `service`.** - -```bash title=Terminal -export POD_NAME=$(kubectl get pods --namespace demo -l "app.kubernetes.io/name=pokemon-api,app.kubernetes.io/instance=demo" -o jsonpath="{.items[0].metadata.name}") -export CONTAINER_PORT=$(kubectl get pod --namespace demo $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") -kubectl --namespace demo port-forward $POD_NAME 8080:$CONTAINER_PORT -echo "Open http://127.0.0.1:8080 to view the Pokeshop demo app" - -kubectl --kubeconfig /.kube/config --context --namespace tracetest port-forward svc/tracetest 11633 -echo "Open http://127.0.0.1:11633 to view the Tracetest Web UI" -``` - -Access the Tracetest Web UI on [`http://localhost:11633`](http://localhost:11633). - -
-
- -
- - -First, be sure that you have [Helm](https://helm.sh/) installed in your machine. - -The Tracetest Helm charts are located [here](https://github.com/kubeshop/helm-charts/tree/main/charts/tracetest). - -You can install them locally on your machine with the command: - -```bash title=Terminal -helm repo add kubeshop https://kubeshop.github.io/helm-charts -helm repo update -``` - -After that, you can install Tracetest with `helm install`: - -```bash title=Terminal -helm install tracetest kubeshop/tracetest --namespace=tracetest --create-namespace -``` - -Or, generate a manifest file and apply it manually in your Kubernetes cluster: - -```bash title=Terminal -helm template tracetest kubeshop/tracetest > tracetest-kubernetes-manifests.yaml -kubectl apply -f ./tracetest-kubernetes-manifests.yaml -``` - -**Access the Tracetest Server by port forwarding to the Tracetest `service`.** - -```bash title=Terminal -kubectl --kubeconfig /.kube/config --context --namespace tracetest port-forward svc/tracetest 11633 -``` - -Access the Tracetest Web UI on [`http://localhost:11633`](http://localhost:11633). - - - - -First, be sure that you have [Docker](https://docker.com/) installed in your machine. - -The Quick Start with the Pokeshop Sample App is located [here](https://github.com/kubeshop/tracetest/tree/main/examples/quick-start-pokeshop). - -**The [`docker-compose.yaml`](https://github.com/kubeshop/tracetest/blob/main/examples/quick-start-pokeshop/docker-compose.yml) contains Tracetest Core, the OpenTelemetry Collector, and a sample app called [Pokeshop](/live-examples/pokeshop/overview). This allows you to create sample tests right away!** - -
- - Click to view Pokeshop Sample App Architecture - - -Here's the Architecture of the Pokeshop Sample App: - -- an **API** that serves client requests, -- a **Worker** who deals with background processes. - -The communication between the API and Worker is made using a `RabbitMQ` queue, and both services emit telemetry data to OpenTelemetry Collector and communicate with a Postgres database. - -Tracetest triggers tests against the Node.js API. - -```mermaid -flowchart TD - A[(Redis)] - B[(Postgres)] - C(Node.js API) - D(RabbitMQ) - E(Worker) - F(OpenTelemetry Collector) - G(Tracetest) - - G --> C - F --> G - C --> A - C --> B - C --> D - D --> E - E --> B - C --> F - E --> F - - -``` -
- -**Start Docker Compose.** - - -{`docker compose -f docker-compose.yaml up -d`} - - -This will start the Tracetest Server and expose the Web UI on [`http://localhost:11633`](http://localhost:11633). - -
-
- -:::tip Don't have OpenTelemetry installed? -Tracetest requires that you have [OpenTelemetry instrumentation](https://opentelemetry.io/docs/instrumentation/) added in your code, and configured [sending traces to a trace data store](/configuration/connecting-to-data-stores/jaeger), or [Tracetest directly](/configuration/connecting-to-data-stores/opentelemetry-collector). - -[Follow these instructions to install OpenTelemetry in 5 minutes without any code changes!](/getting-started/no-otel) -::: diff --git a/docs/docs/core/getting-started/open.mdx b/docs/docs/core/getting-started/open.mdx deleted file mode 100644 index ba047c995b..0000000000 --- a/docs/docs/core/getting-started/open.mdx +++ /dev/null @@ -1,151 +0,0 @@ ---- -id: open -title: Opening Tracetest Core -description: Get started with opening Tracetest Core. Tracetest Core allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. Learn how to get started with creating tests once you open Tracetest. -keywords: - - tracetest - - trace-based testing - - observability - - distributed tracing - - testing -image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg ---- - -This page showcases opening the Tracetest Web UI regardless if you used the Tracetest CLI, Docker, Kubernetes, or Helm to install Tracetest Server. - -Once you've installed Tracetest, as explained in the [installation guide](./installation.mdx), you access the Tracetest Web UI on [`http://localhost:11633`](http://localhost:11633). Here's what will greet you after a fresh install. - -![Landing page Tracetest](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688474565/docs/screely-1688474539641_kbhvvc.png) - -By following the [installation guide](./installation.mdx) your Tracetest Core instance will have a `demo` Pokeshop app installed that generates distributed traces when triggered. - -## Creating Trace-based Tests - -You can create tests in two ways: - -- Visually, in the Web UI -- Programmatically, in YAML - -## Creating Trace-based Tests Visually - -This guide will show how to create end-to-end and integration tests in less than 5 minutes via the Web UI. - -:::note -To view the in-depth guide on creating tests visually, [check out this docs page](/web-ui/creating-tests). -::: - -### Create - -On the top right, click the **Create** button and select **Create New Test** in the drop down. - -![Create a new test](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688475179/docs/screely-1688475174365_ckq3cn.png) - -Select an **HTTP Request** as the **test trigger**, and choose the **Pokeshop - Import** example. - -![Select Pokeshop example](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688475514/docs/screely-1688475510090_r6hqmx.png) - -This will populate a sample API test against a POST endpoint in the Pokeshop app demo. Clicking **Create & Run** will save and trigger the test. - -![API test against POST endpoint](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688475680/docs/screely-1688475676524_vvtxsu.png) - -:::info -Running a test against `localhost` will resolve as `127.0.0.1` inside the Tracetest Core container. To run tests against apps running on your local machine, add them to the same network and use service name mapping instead. Example: Instead of running an app on `localhost:8080`, add it to your Docker Compose file, connect it to the same network as your Tracetest service, and use `service-name:8080` in the URL field when creating an app. - -You can reach services running on your local machine using: - -- Linux (docker version < 20.10.0): `172.17.0.1:8080` -- MacOS (docker version >= 18.03) and Linux (docker version >= 20.10.0): `host.docker.internal:8080` -::: - -### Trigger - -You'll be redirected to the test page where you can see four tabs and depending on which one you select you'll get access to: - -- Test trigger and results -- The entire distributed trace and trace analysis -- Test specification and assertions -- How to automate the test - -:::note -To view the in-depth guide on test results, [check out this docs page](../../web-ui/test-results) -::: - -The **Trigger** tab shows how the test was triggered and what the API response was. - -![test result](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688476389/docs/screely-1688476384678_edcsgx.png) - -### Trace - -The **Trace** tab shows the entire distributed trace for debugging and a trace analysis score. - -![distributed trace and trace analysis score](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688476460/docs/screely-1688476455986_q24aa2.png) - -### Test - -The **Test** tab shows span attributes. Here you add test specs and assertions on attribute values. You also get a test snippets out-of-the-box for common test cases. - -In the sample below, you see how to assert that all database spans return in less than `100ms`. - -![test specs](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688476657/docs/screely-1688476653521_omxe4r.png) - -### Automate - -The **Automate** tab shows how to automate the test run with the Tracetest CLI and other automation options. - -![automate](https://res.cloudinary.com/djwdcmwdz/image/upload/v1688564019/docs/screely-1688564011617_n5pizv.png) - -From here you can download a YAML file test definition and run it with the CLI. - -## Creating Trace-based Tests Programatically - -The test definition will contain: - -- The **Trigger** for the test in the `trigger` section. -- The **Test Specifications** in the`specs` section. - -You can either download the YAML file test definition, or write one from scratch. - -### Create - -Using the sample from above, create the Trace-based Test programatically. - -```yaml title="pokeshop_import.yaml" -type: Test -spec: - id: Yg9sN-94g - name: Pokeshop - Import - description: Import a Pokemon - trigger: - type: http - httpRequest: - url: http://demo-api:8081/pokemon/import - method: POST - headers: - - key: Content-Type - value: application/json - body: '{"id":52}' - specs: - - name: 'All Database Spans: Processing time is less than 100ms' - selector: span[tracetest.span.type="database"] - assertions: - - attr:tracetest.span.duration < 100ms -``` - -### Trigger - -Using the CLI, trigger a test run. - -```bash title="Terminal" -tracetest run test -f pokeshop_import.yaml -o pretty -``` - -### Output - -The test run will complete and show a result. - -```text title="Output" -✔ Pokeshop - Import (http://localhost:11633/test/Yg9sN-94g/run/3/test) - ✔ All Database Spans: Processing time is less than 100ms -``` - -The provided link in the test output will open the test run in the Tracetest Web UI. diff --git a/docs/docs/core/getting-started/overview.mdx b/docs/docs/core/getting-started/overview.mdx index b0f4fe72e7..4794081bef 100644 --- a/docs/docs/core/getting-started/overview.mdx +++ b/docs/docs/core/getting-started/overview.mdx @@ -1,8 +1,7 @@ --- id: overview -title: Getting Started with Tracetest Core -description: Tracetest Core is the open-core version of Tracetest. With Tracetest Core you can build integration and end-to-end tests, powered by your OpenTelemetry traces. -hide_table_of_contents: false +title: Overview +description: Get started with installing Tracetest Core. Tracetest Core allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. keywords: - tracetest - trace-based testing @@ -12,14 +11,290 @@ keywords: image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg --- -Tracetest Core is an open-source, cloud-native application, packaged and distributed as a Docker image and designed to run in a containerized environment. +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import GtagInstallCliTabs from '@site/src/components/GtagInstallCliTabs'; -We recommend using our managed platform for [Tracetest](https://app.tracetest.io/), because it's the easiest way to build and test with OpenTelemetry. Tracetest includes features such as collaboration for teams and comes with a free tier for development. +This page showcases getting started with Tracetest Core by using the Tracetest CLI, Docker, or Kubernetes. -However, if you wish to run Tracetest Core in your own infrastructure, check out the guides below. +This simple installation includes a demo app called [Pokeshop](/live-examples/pokeshop/overview) that will be installed alongside Tracetest Core. It shows how to configure OpenTelemetry and Tracetest Core and the architecture of the Pokeshop sample app. -```mdx-code-block -import {CoreGettingStartedGuideCardsRow} from '@site/src/components/CoreGettingStartedGuide'; +## Install the Tracetest CLI - + + +:::tip Want more info? +Read the CLI installation reference [here](/cli/cli-installation-reference). +::: + +## Install the Tracetest Server + +Tracetest Core runs as a standalone container. It runs a Server and exposes a Web UI on port `11633`. + +You have three options to install Tracetest Server: + +- Using the Tracetest CLI to guide your installation in Docker and Kubernetes. +- Using the official [Helm chart](https://github.com/kubeshop/helm-charts/tree/main/charts/tracetest). +- Using the [Docker Compose Quick Start with the Pokeshop Sample App](https://github.com/kubeshop/tracetest/tree/main/examples/quick-start-pokeshop). + + + + +```bash title="Terminal" +tracetest server install +``` + + + + + {`How do you want to run Tracetest? [type to search]: +> Using Docker Compose + Using Kubernetes`} + + +Choose to install Tracetest with the OpenTelemetry Collector and the [Pokeshop](/live-examples/pokeshop/overview) sample app. + +```text title="Expected output:" +Do you have OpenTelemetry based tracing already set up, or would you like us to install a demo tracing environment and app? [type to search]: + I have a tracing environment already. - Just install Tracetest. +> Just learning tracing! Install Tracetest, OpenTelemetry Collector and the sample app. +``` + +Choosing any option, this installer will create a `tracetest` directory in the current directory and add a `docker-compose.yaml` file to it. + +- If you choose the first option, the `docker-compose.yaml` will have only Tracetest Core and its dependencies. +- **By choosing the second option, a sample app called [Pokeshop](/live-examples/pokeshop/overview) will be installed with Tracetest Core, allowing you to create sample tests right away!** + +
+ + Click to view Pokeshop Sample App Architecture + + +Here's the Architecture of the Pokeshop Sample App: + +- an **API** that serves client requests, +- a **Worker** who deals with background processes. + +The communication between the API and Worker is made using a `RabbitMQ` queue, and both services emit telemetry data to OpenTelemetry Collector and communicate with a Postgres database. + +Tracetest triggers tests against the Node.js API. + +```mermaid +flowchart TD + A[(Redis)] + B[(Postgres)] + C(Node.js API) + D(RabbitMQ) + E(Worker) + F(OpenTelemetry Collector) + G(Tracetest) + + G --> C + F --> G + C --> A + C --> B + C --> D + D --> E + E --> B + C --> F + E --> F + + +``` +
+ +**Start Docker Compose from the directory where you ran `tracetest server install`.** + + +{`docker compose -f tracetest/docker-compose.yaml up -d`} + + +This will start the Tracetest Server and expose the Web UI on [`http://localhost:11633`](http://localhost:11633). + +
+ + + {`How do you want to run TraceTest? [type to search]: + Using Docker Compose +> Using Kubernetes`} + + +Choose to install Tracetest Core with the OpenTelemetry Collector and the [Pokeshop](/live-examples/pokeshop/overview) sample app. + +```text title="Expected output:" +Do you have OpenTelemetry based tracing already set up, or would you like us to install a demo tracing environment and app? [type to search]: + I have a tracing environment already - Just install Tracetest. +> Just learning tracing! Install Tracetest, OpenTelemetry Collector and the sample app. +``` + +Choosing any option, this installer will create a `tracetest` namespace in the Kubernetes context you choose and create deployments for Tracetest Core and its dependencies. + +- If you choose the first option, the `tracetest` namespace will only contain Tracetest Core and its dependencies. +- **By choosing the second option, a sample app called [Pokeshop](/live-examples/pokeshop/overview) will be installed in a `demo` namespace alongside Tracetest Core, allowing you to create sample tests right away!** + +
+ + Click to view Pokeshop Sample App Architecture + + +Here's the Architecture of the Pokeshop Sample App: + +- an **API** that serves client requests, +- a **Worker** who deals with background processes. + +The communication between the API and Worker is made using a `RabbitMQ` queue, and both services emit telemetry data to OpenTelemetry Collector and communicate with a Postgres database. + +Tracetest triggers tests against the Node.js API. + +```mermaid +flowchart TD + A[(Redis)] + B[(Postgres)] + C(Node.js API) + D(RabbitMQ) + E(Worker) + F(OpenTelemetry Collector) + G(Tracetest) + + G --> C + F --> G + C --> A + C --> B + C --> D + D --> E + E --> B + C --> F + E --> F + + +``` +
+ +**Access the Tracetest Server by port forwarding to the Tracetest `service`.** + +```bash title=Terminal +export POD_NAME=$(kubectl get pods --namespace demo -l "app.kubernetes.io/name=pokemon-api,app.kubernetes.io/instance=demo" -o jsonpath="{.items[0].metadata.name}") +export CONTAINER_PORT=$(kubectl get pod --namespace demo $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") +kubectl --namespace demo port-forward $POD_NAME 8080:$CONTAINER_PORT +echo "Open http://127.0.0.1:8080 to view the Pokeshop demo app" + +kubectl --kubeconfig /.kube/config --context --namespace tracetest port-forward svc/tracetest 11633 +echo "Open http://127.0.0.1:11633 to view the Tracetest Web UI" +``` + +Access the Tracetest Web UI on [`http://localhost:11633`](http://localhost:11633). + +
+
+ +
+ + +First, be sure that you have [Helm](https://helm.sh/) installed in your machine. + +The Tracetest Helm charts are located [here](https://github.com/kubeshop/helm-charts/tree/main/charts/tracetest). + +You can install them locally on your machine with the command: + +```bash title=Terminal +helm repo add kubeshop https://kubeshop.github.io/helm-charts +helm repo update +``` + +After that, you can install Tracetest with `helm install`: + +```bash title=Terminal +helm install tracetest kubeshop/tracetest --namespace=tracetest --create-namespace +``` + +Or, generate a manifest file and apply it manually in your Kubernetes cluster: + +```bash title=Terminal +helm template tracetest kubeshop/tracetest > tracetest-kubernetes-manifests.yaml +kubectl apply -f ./tracetest-kubernetes-manifests.yaml +``` + +**Access the Tracetest Server by port forwarding to the Tracetest `service`.** + +```bash title=Terminal +kubectl --kubeconfig /.kube/config --context --namespace tracetest port-forward svc/tracetest 11633 ``` + +Access the Tracetest Web UI on [`http://localhost:11633`](http://localhost:11633). + + + + +First, be sure that you have [Docker](https://docker.com/) installed in your machine. + +The Quick Start with the Pokeshop Sample App is located [here](https://github.com/kubeshop/tracetest/tree/main/examples/quick-start-pokeshop). + +**The [`docker-compose.yaml`](https://github.com/kubeshop/tracetest/blob/main/examples/quick-start-pokeshop/docker-compose.yml) contains Tracetest Core, the OpenTelemetry Collector, and a sample app called [Pokeshop](/live-examples/pokeshop/overview). This allows you to create sample tests right away!** + +
+ + Click to view Pokeshop Sample App Architecture + + +Here's the Architecture of the Pokeshop Sample App: + +- an **API** that serves client requests, +- a **Worker** who deals with background processes. + +The communication between the API and Worker is made using a `RabbitMQ` queue, and both services emit telemetry data to OpenTelemetry Collector and communicate with a Postgres database. + +Tracetest triggers tests against the Node.js API. + +```mermaid +flowchart TD + A[(Redis)] + B[(Postgres)] + C(Node.js API) + D(RabbitMQ) + E(Worker) + F(OpenTelemetry Collector) + G(Tracetest) + + G --> C + F --> G + C --> A + C --> B + C --> D + D --> E + E --> B + C --> F + E --> F + + +``` +
+ +**Start Docker Compose.** + + +{`docker compose -f docker-compose.yaml up -d`} + + +This will start the Tracetest Server and expose the Web UI on [`http://localhost:11633`](http://localhost:11633). + +
+
+ +:::tip Don't have OpenTelemetry installed? +Tracetest requires that you have [OpenTelemetry instrumentation](https://opentelemetry.io/docs/instrumentation/) added in your code, and configured [sending traces to a trace data store](/configuration/connecting-to-data-stores/jaeger), or [Tracetest directly](/configuration/connecting-to-data-stores/opentelemetry-collector). + +[Follow these instructions to install OpenTelemetry in 5 minutes without any code changes!](/getting-started/no-otel) +::: diff --git a/docs/docs/getting-started/installation.mdx b/docs/docs/getting-started/installation.mdx index c36f60732a..6d7ecdf2a3 100644 --- a/docs/docs/getting-started/installation.mdx +++ b/docs/docs/getting-started/installation.mdx @@ -2,6 +2,7 @@ id: installation title: Installing Tracetest description: Get started by installing Tracetest! Tracetest allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. +hide_table_of_contents: true keywords: - tracetest - trace-based testing @@ -22,6 +23,10 @@ This page showcases getting started with [Tracetest](https://app.tracetest.io/) + + + + ## Install the Tracetest Agent [Tracetest Agent](/concepts/agent) runs as a standalone process. It runs either locally on your machine or as a container. Once started, Tracetest Agent exposes OTLP ports `4317` (gRPC) and `4318` (HTTP) for trace ingestion. It executes tests in the environment where it is running and returns the response from triggered tests. @@ -143,6 +148,46 @@ You can reach services running on your local machine using: - MacOS (docker version >= 18.03) and Linux (docker version >= 20.10.0): `host.docker.internal:8080` ::: + + + + + + +## Install Tracetest On-Prem + +:::note +This installation is meant for testing purposes only. It uses self signed certificates, so your browser will show a warning about it. +::: + +1. Install [Helm](https://helm.sh/) and [kind](https://kind.sigs.k8s.io/) on your machine. Clone the official Tracetest Helm chart. + +```sh +git clone https://github.com/kubeshop/tracetest-cloud-charts.git +cd ./tracetest-cloud-charts +``` + +2. Request a **licence key, [here](https://tracetest.io/on-prem-installation)**. + +3. Run the setup script with a demo. Add your license key when you get prompted. + +```sh +sh ./scripts/setup_kind_cluster.sh --install-demo +``` + +4. Add the following lines to your `/etc/hosts` file to access Tracetest. + +```sh +sudo sh -c 'echo "127.0.0.1 tracetest.localdev" >> /etc/hosts' +sudo sh -c 'echo "127.0.0.1 pokeshop.localdev" >> /etc/hosts' +``` + +This setup will configure a local kind cluster with Tracetest On-Prem and the [Pokeshop API demo](/live-examples/pokeshop/overview), with all networking and prerequisites configured to work locally. You can go to the following links: + +- [`https://tracetest.localdev:30000`](https://tracetest.localdev:30000) - Access the Tracetest Web UI. You get a user and an organization created for you. +- [`https://pokeshop.localdev:30000`](https://pokeshop.localdev:30000) - Access the Pokeshop API demo to run tests. + + diff --git a/docs/docs/getting-started/overview.mdx b/docs/docs/getting-started/overview.mdx index 2ff558d823..6b5625b75e 100644 --- a/docs/docs/getting-started/overview.mdx +++ b/docs/docs/getting-started/overview.mdx @@ -23,7 +23,7 @@ import {TracetestGettingStartedGuideCardsRow, TracetestCoreGettingStartedGuideCa Tracetest is a cloud-native application, designed to run in the cloud. Get started in three ways. - **[Cloud-based Managed Tracetest](https://app.tracetest.io/) (Free to get started!)**: Use managed infrastructure with collaboration for teams, and additional features on top of Tracetest Core. -- **Enterprise Self-hosted Tracetest**: Same experience as with Cloud-based Managed Tracetest but self-hosted in your own infrastructure. **[Request a demo](https://dub.sh/tracetest-demo) or [contact us](https://tracetest.io/contact) to get a quote!** +- **[Enterprise Self-hosted Tracetest](https://tracetest.io/on-prem-installation)**: Same experience as with Cloud-based Managed Tracetest but self-hosted in your own infrastructure. **([Request a demo!](https://dub.sh/tracetest-demo))** - **[Hobby Self-hosted Open-source Tracetest Core](/core/getting-started/overview)**: Deploy a hobby instance in your own infrastructure with Docker or Kubernetes. Not suitable for production workloads. ## Cloud-based Managed Tracetest diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx index cfc1d7594f..197637f0fd 100644 --- a/docs/docs/index.mdx +++ b/docs/docs/index.mdx @@ -114,7 +114,7 @@ Get the same experience as with the Cloud-based Managed Tracetest but self-hoste ### Hobby Self-hosted Open-source Tracetest Core -[Deploy a hobby self-hosted instance of Tracetest Core](/core/getting-started/installation) as a Docker container. It's not suitable for production, but a great way to start using Tracetest Core in local environments. +[Deploy a hobby self-hosted instance of Tracetest Core](/core/getting-started/overview) as a Docker container. It's not suitable for production, but a great way to start using Tracetest Core in local environments. ## Architecture diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index e358b3adce..b3f64ac0c5 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -147,20 +147,8 @@ const config = { { type: 'docSidebar', position: 'left', - sidebarId: 'coreSidebar', - label: 'Core' - }, - { - type: 'docSidebar', - position: 'left', - sidebarId: 'examplesTutorialsSidebar', - label: 'Examples & Tutorials' - }, - { - type: 'docSidebar', - position: 'left', - sidebarId: 'liveExamplesSidebar', - label: 'Live Examples' + sidebarId: 'guidesSidebar', + label: 'Examples & Guides' }, { type: 'dropdown', diff --git a/docs/sidebars.js b/docs/sidebars.js index 3a7b36c84d..73ef08691a 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -20,94 +20,7 @@ const sidebars = { // By default, Docusaurus generates a sidebar from the docs folder structure // tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - // But you can create a sidebar manually - - liveExamplesSidebar: [ - { - type: "category", - label: "OpenTelemetry Store Demo", - link: { - type: "doc", - id: "live-examples/opentelemetry-store/overview", - }, - items: [ - { - type: "category", - label: "Use Cases", - items: [ - { - type: "doc", - id: "live-examples/opentelemetry-store/use-cases/add-item-into-shopping-cart", - label: "Add Item into Shopping Cart", - }, - { - type: "doc", - id: "live-examples/opentelemetry-store/use-cases/check-shopping-cart-contents", - label: "Check Shopping Cart Contents", - }, - { - type: "doc", - id: "live-examples/opentelemetry-store/use-cases/checkout", - label: "Checkout", - }, - { - type: "doc", - id: "live-examples/opentelemetry-store/use-cases/get-recommended-products", - label: "Get Recommended Products", - }, - { - type: "doc", - id: "live-examples/opentelemetry-store/use-cases/user-purchasing-products", - label: "User Purchasing Products", - }, - ], - }, - ], - }, - { - type: "category", - label: "Pokeshop API Demo", - link: { - type: "doc", - id: "live-examples/pokeshop/overview", - }, - items: [ - { - type: "category", - label: "Use Cases", - items: [ - { - type: "doc", - id: "live-examples/pokeshop/use-cases/add-pokemon", - label: "Add Pokemon", - }, - { - type: "doc", - id: "live-examples/pokeshop/use-cases/list-pokemon", - label: "List Pokemon", - }, - { - type: "doc", - id: "live-examples/pokeshop/use-cases/get-pokemon-by-id", - label: "Get Pokemon by ID", - }, - { - type: "doc", - id: "live-examples/pokeshop/use-cases/import-pokemon", - label: "Import Pokemon", - }, - { - type: "doc", - id: "live-examples/pokeshop/use-cases/import-pokemon-from-stream", - label: "Import Pokemon from Stream", - }, - ], - }, - ], - }, - ], - - examplesTutorialsSidebar: [ + guidesSidebar: [ { type: "doc", id: "examples-tutorials/overview", @@ -495,96 +408,100 @@ const sidebars = { id: "examples-tutorials/videos", label: "Videos & Recordings", }, - { - type: "doc", - id: "examples-tutorials/tutorials", - label: "Blog Post Tutorials", - }, - ], - - coreSidebar: [ - { - type: "link", - label: "Welcome! 👋", - href: "/", - }, - { - type: "category", - label: "Getting Started", - link: { - type: "doc", - id: "core/getting-started/overview", - }, - items: [ - { - type: "doc", - id: "core/getting-started/installation", - label: "Installing Tracetest Core", - }, - { - type: "doc", - id: "core/getting-started/open", - label: "Opening Tracetest Core", - }, - ], - }, { type: "category", - label: "Configuration", - link: { - type: "doc", - id: "core/configuration/overview", - }, - items: [ - { - type: "doc", - id: "core/configuration/server", - label: "Tracetest Server Configuration", - }, - { - type: "doc", - id: "core/configuration/provisioning", - label: "Tracetest Server Provisioning", - }, - { - type: "doc", - id: "core/configuration/analytics", - label: "Tracetest Server Analytics", - }, - { - type: "doc", - id: "core/configuration/telemetry", - label: "Tracetest Server Telemetry", - }, - { - type: "doc", - id: "core/configuration/upgrade", - label: "Upgrade Tracetest Version", - }, - ], - }, - { - type: "category", - label: "Deployment", + label: "Live Examples", link: { type: "doc", - id: "core/deployment/overview", + id: "live-examples/pokeshop/overview", }, items: [ { - type: "doc", - id: "core/deployment/docker", - label: "Docker", + type: "category", + label: "OpenTelemetry Store Demo", + link: { + type: "doc", + id: "live-examples/opentelemetry-store/overview", + }, + items: [ + { + type: "category", + label: "Use Cases", + items: [ + { + type: "doc", + id: "live-examples/opentelemetry-store/use-cases/add-item-into-shopping-cart", + label: "Add Item into Shopping Cart", + }, + { + type: "doc", + id: "live-examples/opentelemetry-store/use-cases/check-shopping-cart-contents", + label: "Check Shopping Cart Contents", + }, + { + type: "doc", + id: "live-examples/opentelemetry-store/use-cases/checkout", + label: "Checkout", + }, + { + type: "doc", + id: "live-examples/opentelemetry-store/use-cases/get-recommended-products", + label: "Get Recommended Products", + }, + { + type: "doc", + id: "live-examples/opentelemetry-store/use-cases/user-purchasing-products", + label: "User Purchasing Products", + }, + ], + }, + ], }, { - type: "doc", - id: "core/deployment/kubernetes", - label: "Kubernetes", + type: "category", + label: "Pokeshop API Demo", + link: { + type: "doc", + id: "live-examples/pokeshop/overview", + }, + items: [ + { + type: "category", + label: "Use Cases", + items: [ + { + type: "doc", + id: "live-examples/pokeshop/use-cases/add-pokemon", + label: "Add Pokemon", + }, + { + type: "doc", + id: "live-examples/pokeshop/use-cases/list-pokemon", + label: "List Pokemon", + }, + { + type: "doc", + id: "live-examples/pokeshop/use-cases/get-pokemon-by-id", + label: "Get Pokemon by ID", + }, + { + type: "doc", + id: "live-examples/pokeshop/use-cases/import-pokemon", + label: "Import Pokemon", + }, + { + type: "doc", + id: "live-examples/pokeshop/use-cases/import-pokemon-from-stream", + label: "Import Pokemon from Stream", + }, + ], + }, + ], }, - ], + ] }, ], - + tutorialSidebar: [ { type: "doc", @@ -621,141 +538,6 @@ const sidebars = { }, ], }, - { - type: "category", - label: "Configuration", - link: { - type: "doc", - id: "configuration/overview", - }, - items: [ - { - type: "doc", - id: "configuration/agent", - label: "Tracetest Agent (Private Access)", - }, - { - type: "doc", - id: "configuration/cloud-agent", - label: "Tracetest Cloud Agent (Public Access)", - }, - { - type: "category", - label: "Connecting to Tracing Backends", - link: { - type: "doc", - id: "configuration/connecting-to-data-stores/overview", - }, - items: [ - { - type: "doc", - id: "configuration/connecting-to-data-stores/awsxray", - label: "AWS X-Ray", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/azure-app-insights", - label: "Azure App Insights", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/datadog", - label: "Datadog", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/dynatrace", - label: "Dynatrace", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/elasticapm", - label: "Elastic APM", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/tempo", - label: "Grafana Tempo", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/honeycomb", - label: "Honeycomb", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/jaeger", - label: "Jaeger", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/lightstep", - label: "Lightstep", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/new-relic", - label: "New Relic", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/opensearch", - label: "OpenSearch", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/opentelemetry-collector", - label: "OpenTelemetry Collector", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/signalfx", - label: "SignalFX", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/signoz", - label: "SigNoz", - }, - { - type: "doc", - id: "configuration/connecting-to-data-stores/sumologic", - label: "Sumo Logic", - }, - { - type: "doc", - id: "configuration/opentelemetry-collector-configuration-file-reference", - label: "OpenTelemetry Collector Configuration File Reference", - }, - ], - }, - { - type: "doc", - id: "configuration/tracetest-analyzer", - label: "Tracetest Analyzer", - }, - { - type: "doc", - id: "configuration/trace-polling", - label: "Trace Polling", - }, - { - type: "doc", - id: "configuration/test-runner", - label: "Test Runner", - }, - { - type: "doc", - id: "configuration/demo", - label: "Demo Applications", - }, - { - type: "doc", - id: "configuration/sampling-tracetest-spans", - label: "Sampling Tracetest Spans", - }, - ], - }, { type: "category", label: "Concepts", @@ -867,13 +649,95 @@ const sidebars = { }, { type: "doc", - id: "concepts/environment-automation", - label: "Environment Automation", + id: "concepts/ad-hoc-testing", + label: "Ad-hoc Testing", + }, + { + type: "category", + label: "Trace Analyzer", + items: [ + { + type: "doc", + id: "analyzer/concepts", + label: "Concepts", + }, + { + type: "category", + label: "Plugins", + items: [ + { + type: "category", + label: "OTel Semantic Conventions", + link: { + type: "doc", + id: "analyzer/plugins/otel-semantic-conventions", + }, + items: [ + { + type: "doc", + id: "analyzer/rules/span-naming", + label: "span-naming", + }, + { + type: "doc", + id: "analyzer/rules/attribute-naming", + label: "attribute-naming", + }, + { + type: "doc", + id: "analyzer/rules/required-attributes", + label: "required-attributes", + }, + { + type: "doc", + id: "analyzer/rules/no-empty-attributes", + label: "no-empty-attributes", + }, + ], + }, + { + type: "category", + label: "Security", + link: { + type: "doc", + id: "analyzer/plugins/security", + }, + items: [ + { + type: "doc", + id: "analyzer/rules/secure-https-protocol", + label: "secure-https-protocol", + }, + { + type: "doc", + id: "analyzer/rules/no-api-key-leak", + label: "no-api-key-leak", + }, + ], + }, + { + type: "category", + label: "Common Problems", + link: { + type: "doc", + id: "analyzer/plugins/common-problems", + }, + items: [ + { + type: "doc", + id: "analyzer/rules/prefer-dns", + label: "prefer-dns", + }, + ], + }, + ], + }, + ], }, { type: "doc", - id: "concepts/ad-hoc-testing", - label: "Ad-hoc Testing", + id: "concepts/environment-automation", + label: "Environment Automation", }, // { // type: "doc", @@ -887,359 +751,459 @@ const sidebars = { }, ], }, + { type: "category", - label: "Trace Analyzer", + label: "Using Tracetest", + // link: { + // type: "doc", + // id: "...", + // }, items: [ - { - type: "doc", - id: "analyzer/concepts", - label: "Concepts", - }, { type: "category", - label: "Plugins", + label: "Configuration", + link: { + type: "doc", + id: "configuration/overview", + }, items: [ + { + type: "doc", + id: "configuration/agent", + label: "Tracetest Agent (Private Access)", + }, + { + type: "doc", + id: "configuration/cloud-agent", + label: "Tracetest Cloud Agent (Public Access)", + }, { type: "category", - label: "OTel Semantic Conventions", + label: "Connecting to Tracing Backends", link: { type: "doc", - id: "analyzer/plugins/otel-semantic-conventions", + id: "configuration/connecting-to-data-stores/overview", }, items: [ { type: "doc", - id: "analyzer/rules/span-naming", - label: "span-naming", - }, - { - type: "doc", - id: "analyzer/rules/attribute-naming", - label: "attribute-naming", + id: "configuration/connecting-to-data-stores/awsxray", + label: "AWS X-Ray", }, { type: "doc", - id: "analyzer/rules/required-attributes", - label: "required-attributes", + id: "configuration/connecting-to-data-stores/azure-app-insights", + label: "Azure App Insights", }, { type: "doc", - id: "analyzer/rules/no-empty-attributes", - label: "no-empty-attributes", + id: "configuration/connecting-to-data-stores/datadog", + label: "Datadog", }, - ], - }, - { - type: "category", - label: "Security", - link: { - type: "doc", - id: "analyzer/plugins/security", - }, - items: [ { type: "doc", - id: "analyzer/rules/secure-https-protocol", - label: "secure-https-protocol", + id: "configuration/connecting-to-data-stores/dynatrace", + label: "Dynatrace", }, { type: "doc", - id: "analyzer/rules/no-api-key-leak", - label: "no-api-key-leak", + id: "configuration/connecting-to-data-stores/elasticapm", + label: "Elastic APM", }, - ], - }, - { - type: "category", - label: "Common Problems", - link: { - type: "doc", - id: "analyzer/plugins/common-problems", - }, - items: [ { type: "doc", - id: "analyzer/rules/prefer-dns", - label: "prefer-dns", + id: "configuration/connecting-to-data-stores/tempo", + label: "Grafana Tempo", }, - ], - }, - ], - }, - ], - }, - { - type: "category", - label: "Web UI", - items: [ - { - type: "doc", - id: "web-ui/creating-data-stores", - label: "Configuring Data Stores", - }, - { - type: "category", - label: "Configuring Tests", - items: [ - { - type: "category", - label: "Creating Tests", - link: { - type: "doc", - id: "web-ui/creating-tests", - }, - items: [ { type: "doc", - id: "web-ui/creating-tests-http", - label: "Creating Tests - HTTP", + id: "configuration/connecting-to-data-stores/honeycomb", + label: "Honeycomb", }, { type: "doc", - id: "web-ui/creating-tests-gRPC", - label: "Creating Tests - gRPC", + id: "configuration/connecting-to-data-stores/jaeger", + label: "Jaeger", }, { type: "doc", - id: "web-ui/creating-tests-kafka", - label: "Creating Tests - Kafka", + id: "configuration/connecting-to-data-stores/lightstep", + label: "Lightstep", }, { type: "doc", - id: "web-ui/creating-tests-traceid", - label: "Creating Tests - TraceID", + id: "configuration/connecting-to-data-stores/new-relic", + label: "New Relic", }, { type: "doc", - id: "web-ui/creating-tests-cypress", - label: "Creating Tests - Cypress", + id: "configuration/connecting-to-data-stores/opensearch", + label: "OpenSearch", }, { type: "doc", - id: "web-ui/creating-tests-playwright", - label: "Creating Tests - Playwright", + id: "configuration/connecting-to-data-stores/opentelemetry-collector", + label: "OpenTelemetry Collector", }, { type: "doc", - id: "web-ui/creating-tests-k6", - label: "Creating Tests - k6", + id: "configuration/connecting-to-data-stores/signalfx", + label: "SignalFX", }, { type: "doc", - id: "web-ui/creating-tests-artillery", - label: "Creating Tests - Artillery", - }, - ], - }, - { - type: "category", - label: "Importing Tests", - items: [ - { - type: "doc", - id: "web-ui/importing-tests-definition", - label: "Importing Tests from Tracetest Definition", + id: "configuration/connecting-to-data-stores/signoz", + label: "SigNoz", }, { type: "doc", - id: "web-ui/importing-tests-curl", - label: "Importing Tests from CURL", + id: "configuration/connecting-to-data-stores/sumologic", + label: "Sumo Logic", }, { type: "doc", - id: "web-ui/importing-tests-postman", - label: "Importing Tests from Postman", + id: "configuration/opentelemetry-collector-configuration-file-reference", + label: "OpenTelemetry Collector Configuration File Reference", }, ], }, { type: "doc", - id: "web-ui/creating-test-specifications", - label: "Creating Test Specifications", + id: "configuration/tracetest-analyzer", + label: "Trace Analyzer", }, { type: "doc", - id: "web-ui/creating-test-outputs", - label: "Creating Test Outputs", + id: "configuration/trace-polling", + label: "Trace Polling", }, { type: "doc", - id: "web-ui/test-results", - label: "Test Results", + id: "configuration/test-runner", + label: "Test Runner", }, { type: "doc", - id: "web-ui/exporting-tests", - label: "Exporting Tests", + id: "configuration/demo", + label: "Demo Applications", }, { type: "doc", - id: "web-ui/undefined-variables", - label: "Using Undefined Variables", + id: "configuration/sampling-tracetest-spans", + label: "Sampling Tracetest Spans", }, ], }, - { - type: "doc", - id: "web-ui/creating-test-suites", - label: "Creating Test Suites", - }, - { - type: "doc", - id: "web-ui/creating-monitors", - label: "Creating Monitors", - }, - { - type: "doc", - id: "web-ui/black-box-testing", - label: "Enabling Black-Box Testing", - }, - { - type: "doc", - id: "web-ui/creating-variable-sets", - label: "Creating Variable Sets", - }, - ], - }, - { - type: "category", - label: "CLI", - items: [ - { - type: "doc", - id: "cli/cli-installation-reference", - label: "CLI Installation Reference", - }, - { - type: "doc", - id: "cli/configuring-your-cli", - label: "Configuring your CLI", - }, - { - type: "doc", - id: "cli/creating-data-stores", - label: "Configuring Data Stores", - }, { type: "category", - label: "Configuring Tests", + label: "Web UI", items: [ + { + type: "doc", + id: "web-ui/creating-data-stores", + label: "Configuring Data Stores", + }, { type: "category", - link: { - type: "doc", - id: "cli/creating-tests", - }, - label: "Creating Tests", + label: "Configuring Tests", items: [ + { + type: "category", + label: "Creating Tests", + link: { + type: "doc", + id: "web-ui/creating-tests", + }, + items: [ + { + type: "doc", + id: "web-ui/creating-tests-http", + label: "Creating Tests - HTTP", + }, + { + type: "doc", + id: "web-ui/creating-tests-gRPC", + label: "Creating Tests - gRPC", + }, + { + type: "doc", + id: "web-ui/creating-tests-kafka", + label: "Creating Tests - Kafka", + }, + { + type: "doc", + id: "web-ui/creating-tests-traceid", + label: "Creating Tests - TraceID", + }, + { + type: "doc", + id: "web-ui/creating-tests-cypress", + label: "Creating Tests - Cypress", + }, + { + type: "doc", + id: "web-ui/creating-tests-playwright", + label: "Creating Tests - Playwright", + }, + { + type: "doc", + id: "web-ui/creating-tests-k6", + label: "Creating Tests - k6", + }, + { + type: "doc", + id: "web-ui/creating-tests-artillery", + label: "Creating Tests - Artillery", + }, + ], + }, + { + type: "category", + label: "Importing Tests", + items: [ + { + type: "doc", + id: "web-ui/importing-tests-definition", + label: "Importing Tests from Tracetest Definition", + }, + { + type: "doc", + id: "web-ui/importing-tests-curl", + label: "Importing Tests from CURL", + }, + { + type: "doc", + id: "web-ui/importing-tests-postman", + label: "Importing Tests from Postman", + }, + ], + }, { type: "doc", - id: "cli/creating-tests-http", - label: "Creating Tests - HTTP", + id: "web-ui/creating-test-specifications", + label: "Creating Test Specifications", }, { type: "doc", - id: "cli/creating-tests-grpc", - label: "Creating Tests - gRPC", + id: "web-ui/creating-test-outputs", + label: "Creating Test Outputs", }, { type: "doc", - id: "cli/creating-tests-kafka", - label: "Creating Tests - Kafka", + id: "web-ui/test-results", + label: "Test Results", }, { type: "doc", - id: "cli/creating-tests-traceid", - label: "Creating Tests - TraceID", + id: "web-ui/exporting-tests", + label: "Exporting Tests", + }, + { + type: "doc", + id: "web-ui/undefined-variables", + label: "Using Undefined Variables", }, ], }, { type: "doc", - id: "cli/creating-test-specifications", - label: "Creating Test Specifications", + id: "web-ui/creating-test-suites", + label: "Creating Test Suites", }, { type: "doc", - id: "cli/creating-test-outputs", - label: "Creating Test Outputs", + id: "web-ui/creating-monitors", + label: "Creating Monitors", }, { type: "doc", - id: "cli/running-tests", - label: "Running Tests", + id: "web-ui/black-box-testing", + label: "Enabling Black-Box Testing", }, { type: "doc", - id: "cli/undefined-variables", - label: "Using Undefined Variables", - }, - // { - // type: "doc", - // id: "cli/exporting-tests", - // label: "Exporting tests", - // }, + id: "web-ui/creating-variable-sets", + label: "Creating Variable Sets", + }, ], }, { type: "category", - label: "Configuring Test Suites", + label: "CLI", items: [ { type: "doc", - id: "cli/creating-test-suites", - label: "Creating Test Suites", + id: "cli/cli-installation-reference", + label: "CLI Installation Reference", + }, + { + type: "doc", + id: "cli/configuring-your-cli", + label: "Configuring your CLI", + }, + { + type: "doc", + id: "cli/creating-data-stores", + label: "Configuring Data Stores", + }, + { + type: "category", + label: "Configuring Tests", + items: [ + { + type: "category", + link: { + type: "doc", + id: "cli/creating-tests", + }, + label: "Creating Tests", + items: [ + { + type: "doc", + id: "cli/creating-tests-http", + label: "Creating Tests - HTTP", + }, + { + type: "doc", + id: "cli/creating-tests-grpc", + label: "Creating Tests - gRPC", + }, + { + type: "doc", + id: "cli/creating-tests-kafka", + label: "Creating Tests - Kafka", + }, + { + type: "doc", + id: "cli/creating-tests-traceid", + label: "Creating Tests - TraceID", + }, + ], + }, + { + type: "doc", + id: "cli/creating-test-specifications", + label: "Creating Test Specifications", + }, + { + type: "doc", + id: "cli/creating-test-outputs", + label: "Creating Test Outputs", + }, + { + type: "doc", + id: "cli/running-tests", + label: "Running Tests", + }, + { + type: "doc", + id: "cli/undefined-variables", + label: "Using Undefined Variables", + }, + // { + // type: "doc", + // id: "cli/exporting-tests", + // label: "Exporting tests", + // }, + ], + }, + { + type: "category", + label: "Configuring Test Suites", + items: [ + { + type: "doc", + id: "cli/creating-test-suites", + label: "Creating Test Suites", + }, + { + type: "doc", + id: "cli/running-test-suites", + label: "Running Test Suites", + }, + ], + }, + { + type: "doc", + id: "cli/configuring-monitors", + label: "Configuring Monitors", }, { type: "doc", - id: "cli/running-test-suites", - label: "Running Test Suites", + id: "cli/creating-variable-sets", + label: "Creating Variable Sets", + }, + { + type: "category", + label: "Reference", + items: cliGeneratedPages, }, ], }, - { - type: "doc", - id: "cli/configuring-monitors", - label: "Configuring Monitors", - }, - { - type: "doc", - id: "cli/creating-variable-sets", - label: "Creating Variable Sets", - }, - { - type: "category", - label: "Reference", - items: cliGeneratedPages, - }, - ], + ] }, { type: "link", - label: "CI/CD Automation", - href: "/ci-cd-automation/overview", + label: "Examples & Guides", + href: "/examples-tutorials/recipes", }, { type: "link", label: "Tools & Integrations", href: "/tools-and-integrations/overview", }, - { - type: "link", - label: "Examples & Tutorials", - href: "/examples-tutorials/overview", - }, - { - type: "link", - label: "Live Examples", - href: "/live-examples/opentelemetry-store/overview", - }, { type: "link", label: "Tracetest Open API Definition", href: "/openapi", }, + { + type: "category", + label: "Tracetest Core", + items: [ + { + type: "doc", + id: "core/getting-started/overview", + label: "Overview", + }, + { + type: "category", + label: "Configuration", + link: { + type: "doc", + id: "core/configuration/overview", + }, + items: [ + { + type: "doc", + id: "core/configuration/server", + label: "Tracetest Server Configuration", + }, + { + type: "doc", + id: "core/configuration/provisioning", + label: "Tracetest Server Provisioning", + }, + { + type: "doc", + id: "core/configuration/analytics", + label: "Tracetest Server Analytics", + }, + { + type: "doc", + id: "core/configuration/telemetry", + label: "Tracetest Server Telemetry", + }, + { + type: "doc", + id: "core/configuration/upgrade", + label: "Upgrade Tracetest Version", + }, + ], + }, + ] + }, ], }; diff --git a/docs/src/components/CoreGettingStartedGuide/index.tsx b/docs/src/components/CoreGettingStartedGuide/index.tsx deleted file mode 100644 index 4cbf57f6a6..0000000000 --- a/docs/src/components/CoreGettingStartedGuide/index.tsx +++ /dev/null @@ -1,78 +0,0 @@ -/* eslint-disable global-require */ - -import React from 'react'; -import Link from '@docusaurus/Link'; -import Translate from '@docusaurus/Translate'; -import Heading from '@theme/Heading'; - -const CoreGettingStartedGuides = [ - { - name: '👇 Install Tracetest Core', - url: '/core/getting-started/installation', - description: ( - - Set up Tracetest Core and start trace-based testing your distributed system. - - ), - }, - { - name: '🙌 Open Tracetest Core', - url: '/core/getting-started/open', - description: ( - - After installing it, open Tracetest Core start to creating trace-based tests. - - ), - }, - { - name: '🤔 Don\'t have OpenTelemetry?', - url: '/getting-started/no-otel', - description: ( - - Install OpenTelemetry in 5 minutes without any code changes! - - ), - }, - { - name: '🤩 Open Source', - url: 'https://github.com/kubeshop/tracetest', - description: ( - - Check out the Tracetest GitHub repo! Please consider giving us a star! ⭐️ - - ), - }, -]; - -interface Props { - name: string; - url: string; - description: JSX.Element; -} - -function CoreGettingStartedGuideCard({name, url, description}: Props) { - return ( -
-
-
- -
- {name} -

{description}

-
- -
-
-
- ); -} - -export function CoreGettingStartedGuideCardsRow(): JSX.Element { - return ( -
- {CoreGettingStartedGuides.map((coreGettingStartedGuide) => ( - - ))} -
- ); -} diff --git a/docs/src/components/GettingStartedGuide/index.tsx b/docs/src/components/GettingStartedGuide/index.tsx index 013edc043d..19b1812dd0 100644 --- a/docs/src/components/GettingStartedGuide/index.tsx +++ b/docs/src/components/GettingStartedGuide/index.tsx @@ -21,7 +21,7 @@ const TracetestGettingStartedGuides = [ const TracetestCoreGettingStartedGuides = [ { name: 'Tracetest Core 🪨 ', - url: '/core/getting-started/installation', + url: '/core/getting-started/overview', description: ( Use the open-source Tracetest Core in your own infrastructure. diff --git a/docs/src/components/WelcomeGuide/index.tsx b/docs/src/components/WelcomeGuide/index.tsx index d990a15a58..f165256cd1 100644 --- a/docs/src/components/WelcomeGuide/index.tsx +++ b/docs/src/components/WelcomeGuide/index.tsx @@ -16,20 +16,20 @@ const WelcomeGuides = [ // ), // }, { - name: '👇 Getting Started Guides', - url: './examples-tutorials/recipes', + name: '👉 Getting Started', + url: './getting-started/installation', description: ( - - Hit the ground running with these trace-based testing guides! + + Check out guides and installation examples to get started quickly! ), }, { - name: '🤩 Open Source', - url: 'https://github.com/kubeshop/tracetest', + name: '👇 Examples & Guides', + url: './examples-tutorials/recipes', description: ( - - Check out the Tracetest GitHub repo! Please consider giving us a star! ⭐️ + + Hit the ground running with these trace-based testing guides! ), },