Skip to content

Commit

Permalink
docs(landing page): Overhaul docs landing page introduction (#2967)
Browse files Browse the repository at this point in the history
* go work sum

* docs(intro): 1st revamp of intro

* docs(landing page): complete overhaul

* docs(landing): typo

* Update docs/docs/index.mdx

Co-authored-by: Julianne Fermi <julianne@kubeshop.io>

---------

Co-authored-by: Julianne Fermi <julianne@kubeshop.io>
  • Loading branch information
adnanrahic and jfermi committed Jul 20, 2023
1 parent c35a5c7 commit 1957e07
Show file tree
Hide file tree
Showing 17 changed files with 1,982 additions and 758 deletions.
2 changes: 1 addition & 1 deletion docs/docs/ci-cd-automation/tekton-pipeline.md
Expand Up @@ -127,7 +127,7 @@ By default, Tracetest is installed in the `tracetest` namespace.
To explore the Tracetest Web UI, run the command:

```bash
kubectl --kubeconfig ${HOME}/.kube/config --context kind-kind --namespace tracetest port-forward svc/tracetest 11633
kubectl --kubeconfig <path-to-your-home>/.kube/config --context <your-cluster-context> --namespace tracetest port-forward svc/tracetest 11633
```

![Tracetest Web UI](https://res.cloudinary.com/djwdcmwdz/image/upload/v1679064296/Blogposts/Docs/screely-1679064291876_jxlhmn.png)
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/ci-cd-automation/testkube-pipeline.md
Expand Up @@ -194,7 +194,7 @@ By default, Tracetest is installed in the `tracetest` namespace.
To explore the Tracetest Web UI, run the command:

```bash
kubectl --kubeconfig ${HOME}/.kube/config --context kind-kind --namespace tracetest port-forward svc/tracetest 11633
kubectl --kubeconfig <path-to-your-home>/.kube/config --context <your-cluster-context> --namespace tracetest port-forward svc/tracetest 11633
```

![Tracetest Web UI](https://res.cloudinary.com/djwdcmwdz/image/upload/v1679064296/Blogposts/Docs/screely-1679064291876_jxlhmn.png)
Expand Down
File renamed without changes.
Expand Up @@ -125,7 +125,7 @@ By default, Tracetest is installed in the `tracetest` namespace.
To explore the Tracetest Web UI, run the command:

```bash
kubectl --kubeconfig ${HOME}/.kube/config --context kind-kind --namespace tracetest port-forward svc/tracetest 11633
kubectl --kubeconfig <path-to-your-home>/.kube/config --context <your-cluster-context> --namespace tracetest port-forward svc/tracetest 11633
```

![Tracetest Web UI](https://res.cloudinary.com/djwdcmwdz/image/upload/v1679064296/Blogposts/Docs/screely-1679064291876_jxlhmn.png)
Expand Down
14 changes: 8 additions & 6 deletions docs/docs/getting-started/detailed-installation.md
@@ -1,15 +1,17 @@
# Detailed Instructions on Installing Tracetest Using the CLI

Tracetest has a command line interface (CLI) which includes an **install wizard** that helps to install the Tracetest server into Docker or Kubernetes. The CLI can also be used to run tests, download or upload tests, and manage much of the capability of Tracetest.
This page contains detailed instructions for all installation options the Tracetest CLI provides.

:::note
To read about installing the Tracetest CLI, view the [CLI installation reference](./cli-installation-reference.md).
:::
Tracetest has a command line interface (CLI) which includes an **install wizard** that helps to install the Tracetest server into Docker or Kubernetes. The CLI can also be used to run tests, download or upload tests, and manage much of the capability of Tracetest.

This page provides a step-by-step guide to install Tracetest using the Tracetest CLI.

## Prerequisites

:::info
Make sure you have the Tracetest CLI installed. Read the installation reference [here](../cli/cli-installation-reference.md).
:::

:::info
Make sure you have [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/), or [Kubernetes](https://kubernetes.io/) installed.
:::
Expand Down Expand Up @@ -232,7 +234,7 @@ SUCCESS Install successful!
To access tracetest:
kubectl --kubeconfig ${HOME}/.kube/config --context kind-kind --namespace tracetest port-forward svc/tracetest 11633
kubectl --kubeconfig <path-to-your-home>/.kube/config --context <your-cluster-context> --namespace tracetest port-forward svc/tracetest 11633
Then, use your browser to navigate to:
Expand All @@ -244,7 +246,7 @@ Happy TraceTesting =)
### 5. Port forward the Tracetest service

```bash
kubectl --kubeconfig ${HOME}/.kube/config --context kind-kind --namespace tracetest port-forward svc/tracetest 11633
kubectl --kubeconfig <path-to-your-home>/.kube/config --context <your-cluster-context> --namespace tracetest port-forward svc/tracetest 11633
```

```bash title="Expected output..."
Expand Down
45 changes: 19 additions & 26 deletions docs/docs/getting-started/installation.mdx
@@ -1,32 +1,31 @@
# Installing Tracetest

<!-- Docusaurus imports start -->
---
id: installation
title: Installing Tracetest
description: Tracetest 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/v1689693872/docs/Blog_Thumbnail_28_ugy2yy.png
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
import GtagInstallCliTabs from '@site/src/components/GtagInstallCliTabs';

<!-- Docusaurus imports end -->

This page showcases getting started with Tracetest by using the Tracetest CLI, Docker, or Kubernetes.

This simple installation includes a demo app called [Pokeshop](../live-examples/pokeshop/overview.md) that will be installed alongside Tracetest. It shows how to configure OpenTelemetry and Tracetest and the architecture of the Pokeshop sample app.

:::note Prerequisites
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.md), or [Tracetest directly](../configuration/connecting-to-data-stores/opentelemetry-collector.md).
:::

:::tip Don't have OpenTelemetry installed?
[Follow these instructions to install OpenTelemetry in 5 minutes without any code changes!](./no-otel.mdx)
:::

## Install the Tracetest CLI

<GtagInstallCliTabs></GtagInstallCliTabs>

:::tip Want more info?
Read the CLI installation reference [here](./detailed-installation).
Read the CLI installation reference [here](../cli/cli-installation-reference.md).
:::

## Install the Tracetest Server
Expand Down Expand Up @@ -118,10 +117,6 @@ flowchart TD

This will start the Tracetest Server and expose the Web UI on [`http://localhost:11633`](http://localhost:11633).

:::note
View deployment instructions for Docker [here](../deployment/docker).
:::

</TabItem>
<TabItem value="kubernetes" label="Kubernetes">
<CodeBlock
Expand Down Expand Up @@ -198,10 +193,6 @@ 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).

:::note
View deployment instructions for Kubernetes [here](../deployment/kubernetes).
:::

</TabItem>
</Tabs>

Expand Down Expand Up @@ -240,9 +231,11 @@ kubectl --kubeconfig <path-to-your-home>/.kube/config --context <your-cluster-co

Access the Tracetest Web UI on [`http://localhost:11633`](http://localhost:11633).

:::note
View deployment instructions for Kubernetes [here](../deployment/kubernetes).
:::

</TabItem>
</Tabs>

:::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.md), or [Tracetest directly](../configuration/connecting-to-data-stores/opentelemetry-collector.md).

[Follow these instructions to install OpenTelemetry in 5 minutes without any code changes!](./no-otel.mdx)
:::
12 changes: 11 additions & 1 deletion docs/docs/getting-started/no-otel.mdx
@@ -1,5 +1,15 @@
---
---
id: no-otel
title: What if I don't have OpenTelemetry installed?
hide_table_of_contents: true
description: Tracetest allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces. Learn how to install OpenTelemetry in less than 5 minutes.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1689693872/docs/Blog_Thumbnail_28_ugy2yy.png
---

# What if I don't have OpenTelemetry installed?
Expand Down
13 changes: 12 additions & 1 deletion docs/docs/getting-started/open.md
@@ -1,4 +1,15 @@
# Opening Tracetest
---
id: open
title: Opening Tracetest
description: Tracetest 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/v1689693872/docs/Blog_Thumbnail_28_ugy2yy.png
---

This page showcases opening the Tracetest Web UI regardless if you used the Tracetest CLI, Docker, Kubernetes, or Helm to install Tracetest Server.

Expand Down
54 changes: 0 additions & 54 deletions docs/docs/index.md

This file was deleted.

117 changes: 117 additions & 0 deletions docs/docs/index.mdx
@@ -0,0 +1,117 @@
---
id: index
title: Welcome to Tracetest Docs! 👋
description: Tracetest allows you to quickly build integration and end-to-end tests, powered by your OpenTelemetry traces.
hide_table_of_contents: false
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1689693872/docs/Blog_Thumbnail_28_ugy2yy.png
breadcrumb_label: Nothing
---

import CodeBlock from '@theme/CodeBlock';

Tracetest is a trace-based testing tool for building integration and end-to-end tests in minutes using your [OpenTelemetry](https://opentelemetry.io/docs/getting-started/) traces. Assert against your trace data at every point of a request transaction.

```mdx-code-block
import {GettingStartedGuideCardsRow} from '@site/src/components/GettingStartedGuide';
<GettingStartedGuideCardsRow />
```

## Why Tracetest?

You can:

- Define tests and assertions against every single microservice that a trace goes through.
- Define **assertions against** both the **response and trace data**.
- Ensure both your response and the underlying processes worked correctly, quickly, and without errors.
- Work with your existing distributed tracing solution.
- Build tests based on your already instrumented system.
- Define multiple transaction triggers:
- HTTP requests
- GRPC requests
- trace IDs
- and many more...
- Save and run the tests manually or via CI build jobs.
- Write detailed trace-based tests as:
- End-to-end tests
- Integration tests
- Build tests in minutes.

<div className="row">
<div className="col col--12 margin-bottom--lg">
<div>
<div className="card__body">
<p align="center">
<b>Visually - Build tests in the Web UI</b>
</p>
</div>
<div className="card__footer">
<img src="https://res.cloudinary.com/djwdcmwdz/image/upload/v1688476657/docs/screely-1688476653521_omxe4r.png" />
</div>
</div>
</div>
<div className="col col--12 margin-bottom--lg">
<div>
<div className="card__body">
<p align="center">
<b>Programmatically - Build tests in YAML</b>
</p>
</div>
<div className="card__footer">
<CodeBlock
language="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
`}
</CodeBlock>
</div>
</div>
</div>
</div>

## Architecture

Understand how Tracetest works.

1. Trigger a test and generate a trace response.
2. Fetch traces to render and analyze them.
3. Add assertions to traces.
4. See test results.
5. Run tests as part of CI/CD pipelines.

![Marketechture](https://res.cloudinary.com/djwdcmwdz/image/upload/v1686654113/docs/tracetest-marketechture-jun12-v3_ffj2e2.png)

## Who uses Tracetest?

Our users are typically developers or QA engineers building distributed systems with microservices using back-end languages like Go, Rust, Node.js and Python.

## What makes Tracetest special?

Tracetest can be compared with Cypress or Selenium; however Tracetest is fundamentally different.

Cypress and Selenium are constrained by using the browser for testing. Tracetest bypasses this entirely by using your existing OpenTelemetry instrumentation and trace data to run tests and assertions against traces in every step of a request transaction.

0 comments on commit 1957e07

Please sign in to comment.