Skip to content

Commit

Permalink
Merge pull request #186 from kubeshop/Readme-changes-based-on-DevRel-…
Browse files Browse the repository at this point in the history
…notes

Readme changes based on dev rel notes
  • Loading branch information
kdhamric committed Apr 12, 2022
2 parents a9f0617 + f5a53a1 commit d8d1ec5
Show file tree
Hide file tree
Showing 6 changed files with 94 additions and 47 deletions.
110 changes: 63 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,63 @@
# Tracetest

## Overview

Testing and debugging software built on Micro-Services architectures is hard.

As many as 30 to 100 services may be involved in a single flow. Written in multiple languages. With several backend data stores, message busses, and technologies. Understanding the flow is hard - having enough experience & wide ranging knowledge to create tests to verify it is working properly is even harder.

Tracetest makes this easy. Pick an api to test. Tracetest uses your tracing infrastructure to trace this api call. This trace is the blueprint of your entire system, showing all the activity. Use this blueprint to graphically define assertions on different services throughout the trace, checking return statuses, data, or even execution times of systems.

Examples:
assert that all database calls return in less than 250 ms
assert that one particular micro service returns a 200 code when called
assert that a Kafka queue successful delivers a payload to a dependent micro service.

Once the test is built, it can be run automatically as part of a build process or manually. Every test has a trace attached, allowing you to immediately see what worked, and what did not, reducing the need to reproduce the problem to see the underlying issue.

# Development

## Web Folder Structure

### Web Folder Tree

* [public/](./web/public)
* [src/](./web/src)
* [components/](./web/src/components)
* [hooks/](./web/src/hooks)
* [lib/](./web/src/lib)
* [navigation/](./web/src/navigation)
* [pages/](./web/src/pages)
* [redux/](./web/src/redux)
* [services/](./web/src/services)
* [types/](./web/src/types)
* [utils/](./web/src/utils)

| Folder | Description |
|---|---|
| public/ | contains html and can put any scripts, or static files |
| components/ | any reusable components |
| hooks/ | any reusable hooks |
| lib/ | any constants |
| navigation/ | react-router setup |
| pages/ | each page has its folder that contains styled file, and sub components |
| redux/ | state management setup |
| services/ | any class or functions that talk with data and processing it |
| types/| defined models used in the web app| |
|utils/| any pure functions that shared in the app ||
<p align="center">
<img style="width:66%" src="assets/tracetest-color-white.png#gh-dark-mode-only" alt="Tracetest Logo Light"/>
<img style="width:66%" src="assets/tracetest-color-dark.png#gh-light-mode-only" alt="Tracetest Logo Dark" />
</p>

<p align="center">
End-to-end tests powered by OpenTelemetry. For QA, Dev, & Ops.
</p>

<p align="center">
<!--<a href="https://tracetest.io">Website</a>&nbsp;|&nbsp; -->
<a href="https://kubeshop.github.io/tracetest">Documentation</a>&nbsp;|&nbsp;
<a href="https://twitter.com/tracetest_io">Twitter</a>&nbsp;|&nbsp;
<a href="https://discord.gg/eBvEQRVyKX">Discord</a>&nbsp;|&nbsp;
<a href="https://kubeshop.io/category/tracetest">Blog (TBD!)</a>
</p>

<p align="center">
<a href="https://github.com/kubeshop/tracetest/releases"><img title="Release" src="https://img.shields.io/github/v/release/kubeshop/tracetest"/></a>
<a href=""><img title="Downloads" src="https://img.shields.io/github/downloads/kubeshop/tracetest/total.svg"/></a>
<a href=""><img title="Go version" src="https://img.shields.io/github/go-mod/go-version/kubeshop/tracetest"/></a>
<a href=""><img title="Docker builds" src="https://img.shields.io/docker/automated/kubeshop/tracetest"/></a>
<a href="https://github.com/kubeshop/tracetest/releases"><img title="Release date" src="https://img.shields.io/github/release-date/kubeshop/tracetest"/></a>
</p>

<p align="center">
<a target="_new" href="https://www.youtube.com/watch?v=GVvgLuxdrXE&t=47s">
<img src="assets/intro-to-tracetest.jpg" style="width:66%;height:auto">
<p align="center">
Click on the image or this link to watch the "Intro to Tracetest" short video (3 mins)
</p>
</a>
</p>

# Overview

Testing and debugging software built on Micro-Services architectures is hard. Lots of services, multiple teams, written in various languages, with many different technologies involved. How are you expected to write tests across all this complexity?

Tracetest makes it easy. Pick an api to test. Tracetest uses your tracing infrastructure to trace this api call. This trace is the blueprint of your system, showing all the steps. Use this blueprint to graphically define assertions on different services throughout the trace, checking return statuses, data, or even execution times of systems.

![Assertions](/assets/assertions.png)

Once the test is built, it can be run automatically as part of a build process. Every test has a trace attached, allowing you to immediately see what worked, and what did not, reducing the need to reproduce the problem to see the underlying issue.

# System Diagram

<img src="/assets/tracetest-diagram-01.png" height="600">

# Try the demo & give us feedback

Wanna play with it? [Try the live demo!](https://demo.tracetest.io)

Wanna help us? Give us feedback: [Discord](https://discord.gg/eBvEQRVyKX) or [Create an Issue](https://github.com/kubeshop/tracetest/issues/new/choose)

# Getting Started

Check out the [Installation](https://kubeshop.github.io/tracetest/installing/) and
[Getting Started](https://kubeshop.github.io/tracetest/getting-started/) guides to set up Tracetest and
run your first tests! It is still a 'work in progress' so please provide us with any and all [feedback](https://github.com/kubeshop/tracetest/issues/new/choose) - we live for input and will respond!

# Documentation

Is available at [https://kubeshop.github.io/tracetest](https://kubeshop.github.io/tracetest)
Binary file added assets/assertions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/intro-to-tracetest.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/tracetest-diagram-01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Development

## Web Folder Structure

### Web Folder Tree

- [public/](./web/public)
- [src/](./web/src)
- [components/](./web/src/components)
- [hooks/](./web/src/hooks)
- [lib/](./web/src/lib)
- [navigation/](./web/src/navigation)
- [pages/](./web/src/pages)
- [redux/](./web/src/redux)
- [services/](./web/src/services)
- [types/](./web/src/types)
- [utils/](./web/src/utils)

| Folder | Description |
| ----------- | ---------------------------------------------------------------------- | --- |
| public/ | contains html and can put any scripts, or static files |
| components/ | any reusable components |
| hooks/ | any reusable hooks |
| lib/ | any constants |
| navigation/ | react-router setup |
| pages/ | each page has its folder that contains styled file, and sub components |
| redux/ | state management setup |
| services/ | any class or functions that talk with data and processing it |
| types/ | defined models used in the web app | |
| utils/ | any pure functions that shared in the app | |
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ nav:
- Getting Started: getting-started.md
- Architecture: architecture.md
- OpenAPI Definition: openapi.md
- Development: development.md

extra:
analytics:
Expand Down

0 comments on commit d8d1ec5

Please sign in to comment.