Skip to content

Commit

Permalink
readme(get-started): improve get started section (ref issue 3793) (#3806
Browse files Browse the repository at this point in the history
)

* readme(get-started): improve get started section (ref issue 3793)

* docs(nav): update callout link

* docs(get started): updated wording for Tracetest managed vs self-hosted options

* docs+readme(getting started): update wording and links
  • Loading branch information
Adnan Rahić authored Apr 18, 2024
1 parent 9fa5b7b commit c765d38
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 82 deletions.
76 changes: 44 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,36 +132,9 @@ You can:
- attr:tracetest.span.duration < 100ms
```
# πŸ”₯ Features
- Works out of the box with your existing OpenTelemetry instrumentation, supporting [numerous trace data stores](https://docs.tracetest.io/configuration/overview/#supported-trace-data-stores), including:
- Jeager
- Grafana Tempo
- OpenSearch
- Elastic
- And, many more...
- Tell us which other trace data stores you want supported!
- Works out of the box by adding Tracetest as an [additional pipeline](https://docs.tracetest.io/configuration/connecting-to-data-stores/opentelemetry-collector) via your OpenTelemetry Collector config.
- Supporting multiple ways of creating a test, including HTTP, GRPC and Postman Collections.
- Visualize the changes you are making to your trace as you develop, enabling Observability-Driven Development.
- [Add assertions](https://docs.tracetest.io/using-tracetest/adding-assertions) based on response data from the trigger request and all trace data contained in the spans of your distributed trace.
- Specify which spans to check in assertions via the [selector language](https://docs.tracetest.io/concepts/selectors).
- Define checks against the attributes in these spans, including properties, return status, or timing.
- Create tests visually in the Tracetest Web UI or programatically via [YAML-based test definition files](https://docs.tracetest.io/cli/test-definition-file).
- Use test definition files and the Tracetest CLI to [enable Gitops flows and CI/CD automation](https://docs.tracetest.io/ci-cd-automation/overview).
- [Tracetest CLI](https://docs.tracetest.io/cli/cli-installation-reference) allows importing & exporting tests, running tests, and more.
- [Version tests](https://docs.tracetest.io/concepts/versioning/) as the definition of the test is altered.
- The [guided install](https://docs.tracetest.io/getting-started/installation) can include [an example "Pokeshop" microservice](https://docs.tracetest.io/live-examples/pokeshop/overview) that is instrumented with OpenTelemetry to use as an example application under test.
- Create [environment variables](https://docs.tracetest.io/concepts/environments) to assert the same behavior across multiple environments (dev, staging, and production, for example)
- Create [test outputs](https://docs.tracetest.io/web-ui/creating-test-outputs/) by defining a variable based on the information contained in a particular span's attributes.
- Run [ad-hoc tests](https://docs.tracetest.io/concepts/ad-hoc-testing) by using undefined variables to enable supplying variables at runtime.
- Define [test suites/transactions](https://docs.tracetest.io/concepts/transactions) to chain tests together and use variables obtained from a test in a subsequent test. These variables can also be loaded from the environment.
- Run comprehensive [trace analysis and validation](https://docs.tracetest.io/analyzer/concepts) to adhere to OpenTelemetry rules and standards.
- Configure [test runner](https://docs.tracetest.io/configuration/test-runner) behavior with required gates used when executing your tests to determine whether to mark the test as passed or failed.
# πŸš€ Getting Started
<p align="center">
<p align="center">pe
<a target="_new" href="https://kubeshop.wistia.com/medias/dw06408oqz">
<img src="/assets/introvideo.png" style="width:66%;height:auto">
<p align="center">
Expand All @@ -170,15 +143,27 @@ You can:
</a>
</p>
## 1️⃣ Install the Tracetest CLI
## Cloud-based Managed Tracetest (Free to get started!)
The easiest and most reliable way to test microservices and distributed apps with OpenTelemetry distributed traces is signing up for free at [app.tracetest.io](https://app.tracetest.io/). After creating an account, getting started is as easy as [installing the Tracetest Agent](https://docs.tracetest.io/getting-started/installation).
## Enterprise Self-hosted Tracetest (Coming soon...)
Get the same experience as with the Cloud-based Managed Tracetest but self-hosted in your own infrastructure. [Book a call](https://dub.sh/tracetest-demo) to get into early access.
### 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.
### 1️⃣ Install the Tracetest CLI
```bash
curl -L https://raw.githubusercontent.com/kubeshop/tracetest/main/install-cli.sh | bash -s
```

> [:gear: Read the CLI installation docs for more options and instructions.](https://docs.tracetest.io/getting-started/installation#install-the-tracetest-cli)
## 2️⃣ Install the Tracetest Server
### 2️⃣ Install the Tracetest Server

```bash
tracetest server install
Expand All @@ -194,11 +179,38 @@ helm install tracetest kubeshop/tracetest --namespace=tracetest --create-namespa

> [:gear: Read the Server installation docs for more options and instructions.](https://docs.tracetest.io/getting-started/installation#install-the-tracetest-server)
## 3️⃣ Open Tracetest
### 3️⃣ Open Tracetest

Once you've installed Tracetest Server, access the Tracetest Web UI on `http://localhost:11633`.

Check out the [Opening Tracetest guide](https://docs.tracetest.io/getting-started/open) to start creating and running tests!
Check out the [Opening Tracetest guide](https://docs.tracetest.io/core/getting-started/open) to start creating and running tests!

# πŸ”₯ Features

- Works out of the box with your existing OpenTelemetry instrumentation, supporting [numerous trace data stores](https://docs.tracetest.io/configuration/overview/#supported-trace-data-stores), including:
- Jeager
- Grafana Tempo
- OpenSearch
- Elastic
- And, many more...
- Tell us which other trace data stores you want supported!
- Works out of the box by adding Tracetest as an [additional pipeline](https://docs.tracetest.io/configuration/connecting-to-data-stores/opentelemetry-collector) via your OpenTelemetry Collector config.
- Supporting multiple ways of creating a test, including HTTP, GRPC and Postman Collections.
- Visualize the changes you are making to your trace as you develop, enabling Observability-Driven Development.
- [Add assertions](https://docs.tracetest.io/using-tracetest/adding-assertions) based on response data from the trigger request and all trace data contained in the spans of your distributed trace.
- Specify which spans to check in assertions via the [selector language](https://docs.tracetest.io/concepts/selectors).
- Define checks against the attributes in these spans, including properties, return status, or timing.
- Create tests visually in the Tracetest Web UI or programatically via [YAML-based test definition files](https://docs.tracetest.io/cli/test-definition-file).
- Use test definition files and the Tracetest CLI to [enable Gitops flows and CI/CD automation](https://docs.tracetest.io/ci-cd-automation/overview).
- [Tracetest CLI](https://docs.tracetest.io/cli/cli-installation-reference) allows importing & exporting tests, running tests, and more.
- [Version tests](https://docs.tracetest.io/concepts/versioning/) as the definition of the test is altered.
- The [guided install](https://docs.tracetest.io/getting-started/installation) can include [an example "Pokeshop" microservice](https://docs.tracetest.io/live-examples/pokeshop/overview) that is instrumented with OpenTelemetry to use as an example application under test.
- Create [environment variables](https://docs.tracetest.io/concepts/environments) to assert the same behavior across multiple environments (dev, staging, and production, for example)
- Create [test outputs](https://docs.tracetest.io/web-ui/creating-test-outputs/) by defining a variable based on the information contained in a particular span's attributes.
- Run [ad-hoc tests](https://docs.tracetest.io/concepts/ad-hoc-testing) by using undefined variables to enable supplying variables at runtime.
- Define [test suites/transactions](https://docs.tracetest.io/concepts/transactions) to chain tests together and use variables obtained from a test in a subsequent test. These variables can also be loaded from the environment.
- Run comprehensive [trace analysis and validation](https://docs.tracetest.io/analyzer/concepts) to adhere to OpenTelemetry rules and standards.
- Configure [test runner](https://docs.tracetest.io/configuration/test-runner) behavior with required gates used when executing your tests to determine whether to mark the test as passed or failed.

# πŸ€” How does Tracetest work?

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/configuration/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ keywords:
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

To enable Tracetest to run end-to-end tests against trace data, you need to configure access. Tracetest is designed to work with tracing backends, or to ingest trace data via an OTLP ingest endpoint.
To enable Tracetest to run end-to-end tests against trace data, you need to configure Tracetest to access your app. Tracetest is designed to work with tracing backends, or to ingest trace data via an OTLP ingest endpoint.

## Enable Tracetest to Access Your Application

Expand Down
44 changes: 4 additions & 40 deletions docs/docs/getting-started/open.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_T

This page showcases opening the Tracetest Web UI and creating a test against the [microservice sample Pokeshop API](/live-examples/pokeshop/overview).

Once you've installed Tracetest, as explained in the [installation guide](./installation.mdx), the Tracetest Agent is running on `localhost` ports `4317` and `4318`. You then access the Tracetest Web UI on [`app.tracetest.io`](https://app.tracetest.io). Here's what will greet you after a fresh install.
Once you've signed in to Tracetest, as explained in the [installation guide](./installation.mdx), the [Tracetest Agent](/concepts/agent) is running in your environment on ports `4317` and `4318`, or you'll get an API endpoint if you're using the [Tracetest Cloud Agent](/concepts/cloud-agent).

You access the Tracetest Web UI on [`app.tracetest.io`](https://app.tracetest.io). 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)

Expand Down Expand Up @@ -67,40 +69,6 @@ flowchart TD
```
</details>


### Configure the Pokeshop API Demo resource

Configure the `demo` [resource](/core/configuration/provisioning) to quickly create tests either in the Web UI or with the CLI.

In the Web UI go to **Settings > Demo**, toggle **Enable Pokeshop**, and add:

- HTTP Endpoint: `http://localhost:8081`
- GRPC Endpoint: `localhost:8082`

![Settings](https://res.cloudinary.com/djwdcmwdz/image/upload/v1696251763/docs/screely-1696251756346_ptxb9m.png)

Create a file called `tracetest-provision.yaml`.

```yaml title=tracetest-provision.yaml
---
type: Demo
spec:
type: pokeshop
enabled: true
name: pokeshop
pokeshop:
httpEndpoint: http://localhost:8081
grpcEndpoint: localhost:8082
```
With the CLI, run the command below to enable the `demo` resource.

```bash
tracetest apply demo -f tracetest-provision.yaml
```

You can now quickly create tests against the Pokeshop API.

## Creating Trace-based Tests

You can create tests in two ways:
Expand All @@ -122,11 +90,7 @@ On the top right, click the **Create** button and select **Create New Test** in

![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.
Select an **HTTP Request** as the **test trigger**. Clicking **Create & Run** will save and trigger the test.

![API test against POST endpoint](https://res.cloudinary.com/djwdcmwdz/image/upload/v1696253160/docs/screely-1696253153066_khjz8y.png)

Expand Down
9 changes: 5 additions & 4 deletions docs/docs/getting-started/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@ image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_T
import {TracetestGettingStartedGuideCardsRow, TracetestCoreGettingStartedGuideCardsRow} from '@site/src/components/GettingStartedGuide';
```

Tracetest is a cloud-native application, designed to run in the cloud. Get started with Tracetest in two ways:
Tracetest is a cloud-native application, designed to run in the cloud. Get started in three ways.

- [Tracetest managed platform](https://app.tracetest.io/) and use managed infrastructure with collaboration for teams.
- Deploy [Tracetest Core](/core/getting-started/overview) to your own infrastructure with Docker or Kubernetes.
- **[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 Core.
- **Enterprise Self-hosted Tracetest (Coming soon...)**: Same experience as with Cloud-based Managed Tracetest but self-hosted in your own infrastructure. **[Book a call](https://dub.sh/tracetest-demo) to get into early access.**
- **[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.

## Getting Started with Tracetest Managed Platform

**We recommend using our managed platform for [Tracetest](https://app.tracetest.io/)**. It's the easiest way to test microservices and distributed apps with OpenTelemetry distributed traces. Tracetest provides managed infrastructure, [collaboration for teams](/concepts/environments), [RBAC](/concepts/roles-and-permissions), [organizations](/concepts/organizations), [dependency-free config](/concepts/agent), [agentless serverless config](/concepts/cloud-agent), and much more.
**We recommend using [Cloud-based Managed Tracetest](https://app.tracetest.io/)**. It's the easiest way to test microservices and distributed apps with OpenTelemetry distributed traces. Tracetest provides managed infrastructure, [collaboration for teams](/concepts/environments), [RBAC](/concepts/roles-and-permissions), [organizations](/concepts/organizations), [dependency-free config](/concepts/agent), [agentless serverless config](/concepts/cloud-agent), and much more.

Get started with the installation guide below, tailored for microservice and distributed app developers. You may find it insightful even if you have [one of many other supported use cases](/examples-tutorials/recipes).

Expand Down
18 changes: 17 additions & 1 deletion docs/docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ 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.
Tracetest is a trace-based testing tool for integration and end-to-end testing using [OpenTelemetry](https://opentelemetry.io/) traces. Verify end-to-end transactions and side-effects across microservices & event-driven apps by using trace data as test specs.

```mdx-code-block
import {WelcomeGuideCardsRow} from '@site/src/components/WelcomeGuide';
Expand Down Expand Up @@ -100,6 +100,22 @@ You can:
</div>
</div>

## Getting Started

Tracetest is a cloud-native application, designed to run in the cloud. Get started in three ways.

### Cloud-based Managed Tracetest (Free to get started!)

The easiest and most reliable way to test microservices and distributed apps with OpenTelemetry distributed traces is signing up for free at [app.tracetest.io](https://app.tracetest.io/). After creating an account, getting started is as easy as [installing the Tracetest Agent](/getting-started/installation).

### Enterprise Self-hosted Tracetest (Coming soon...)

Get the same experience as with the Cloud-based Managed Tracetest but self-hosted in your own infrastructure. [Book a call](https://dub.sh/tracetest-demo) to get into early access.

### 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.

## Architecture

Understand how Tracetest works.
Expand Down
2 changes: 1 addition & 1 deletion docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ const config = {
// content:
// '<a target="_blank" rel="noopener noreferrer" href="https://tracetest.io/pricing">Tracetest Open Beta is Live. Try it! Give us feedback! πŸ™Œ</a>',
content:
'<a target="_blank" rel="noopener noreferrer" href="https://tracetest.io/blog/tracetest-is-going-to-kubecon-cloudnativecon-europe-in-paris">Tracetest is going to KubeCon + CloudNativeCon Europe in Paris πŸ‡«πŸ‡·</a>',
'<a target="_blank" rel="noopener noreferrer" href="https://tracetest.io/blog/observability-at-kubecon-cloudnativecon-europe-2024-in-paris">πŸ‘‰ Check out the "Observability πŸ”­ at KubeCon CloudNativeCon EU 2024 Paris" recap! πŸ‘ˆ</a>',
isCloseable: false,
},
navbar: {
Expand Down
6 changes: 3 additions & 3 deletions docs/src/components/WelcomeGuide/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ const WelcomeGuides = [
button: 'Go to GitHub',
},
{
name: 'βš™οΈ Configure trace data stores',
url: '/configuration/overview#supported-trace-data-stores',
name: 'βš™οΈ Configure access and tracing backend',
url: '/configuration/overview',
description: (
<Translate>
Connect your existing trace data store or send traces to Tracetest directly!
Configure app access & connect tracing backend / OTLP ingestion!
</Translate>
),
button: 'Configure',
Expand Down

0 comments on commit c765d38

Please sign in to comment.