Skip to content

Commit

Permalink
examples+docs(github-actions): Add example app and CI/CD docs (#2450)
Browse files Browse the repository at this point in the history
* examples(gh-actions): added example app with Node.js

* docs(cicd): add gh actions

* docs(cleanup): fix typos

* docs(sidebar): update so accordion opens page

* docs(sidebar): add auto collapse categories

* docs(examples-tutorials): revamp layout, add new content

* docs(recipes): revamp main recipes page

* Update docs/docs/examples-tutorials/overview.md

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

* docs(layout): edited colors to better align with WCAG-AA contrast ratio

---------

Co-authored-by: Julianne Fermi <julianne@kubeshop.io>
  • Loading branch information
adnanrahic and jfermi committed Apr 28, 2023
1 parent 1173f1f commit 8e39db1
Show file tree
Hide file tree
Showing 46 changed files with 7,829 additions and 129 deletions.
495 changes: 493 additions & 2 deletions docs/docs/ci-cd-automation/github-actions-pipeline.md

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions docs/docs/ci-cd-automation/overview.md
@@ -0,0 +1,15 @@
# CI/CD Automation

This section contains a general overview of running Tracetest in CI/CD pipelines. You can find guides for:

- [GitHub Actions](./github-actions-pipeline)

Tracetest is designed to work with all CI/CD platforms and automation tools. To enable Tracetest to run in CI/CD environments, make sure to [install the Tracetest CLI](../getting-started/installation.mdx) and configure it to access your [Tracetest server](../configuration/server.md).

To read more about integrating Tracetest with CI/CD tools, check out tutorials in our blog:

- [Integrating Tracetest with GitHub Actions in a CI pipeline](https://kubeshop.io/blog/integrating-tracetest-with-github-actions-in-a-ci-pipeline)

:::note
If you want to see more examples with other CI/CD tools, let us know by [opening an issue in GitHub](https://github.com/kubeshop/tracetest/issues/new/choose)!
:::
4 changes: 3 additions & 1 deletion docs/docs/configuration/overview.md
@@ -1,6 +1,7 @@
# Configuration Overview
# Configuration

There are several configuration options with Tracetest:

- [Server configuration](./server) to set database connection information needed to connect to required PostgreSQL instance.
- [Provisioning configuration](./provisioning) to 'preload' the Tracetest server with resources when first running the Tracetest server.

Expand Down Expand Up @@ -39,6 +40,7 @@ Tracetest has a configuration file to contain the minimal information needed to
You can also provision the server when it first starts, configuring most aspects of your Tracetest server environment. This is useful in a CI/CD environment to preload and configure the server. See more at [Provisioning a Tracetest Server](./provisioning).

Many of the server configuration settings can be set individually in the UI or via the CLI. See:

- [Trace Polling](./trace-polling)
- [Demo Applications](./demo)
- [Analytics](./analytics)
2 changes: 1 addition & 1 deletion docs/docs/deployment/overview.md
@@ -1,4 +1,4 @@
# Deployment Overview
# Deployment

This section contains a general overview of deploying Tracetest in production. You can find platform-specific guides for:

Expand Down
113 changes: 61 additions & 52 deletions docs/docs/examples-tutorials/overview.md
@@ -1,57 +1,66 @@
# Overview
# Examples & Tutorials

<!-- If you're already building something with Tracetest, please explore recipes — short, self-contained, and runnable solutions to popular use cases. -->
Below you can find tutorials to help you get started with Tracetest.

## Tutorials

Check out the following blog posts with Tracetest-related content:

- [Frontend Overhaul of the OpenTelemetry Demo (Go to Next.js)](https://tracetest.io/blog/frontend-overhaul-opentelemetry-demo) - Oct 5, 2022

- [Enabling Tracetest to Work Directly with OpenSearch](https://tracetest.io/blog/tracetest-opensearch-integration) - Oct 3, 2022

- [Is it Observable? with Henrik Rexed](https://tracetest.io/blog/is-it-observable-with-henrik-rexed) - Sep 22, 2022

- [Tracetest v0.7 Release Notes](https://tracetest.io/blog/tracetest-v0-7-release-notes) - Aug 23, 2022

- [Tracetest Roadmap Planning - In Person, In Cartagena!](https://tracetest.io/blog/tracetest-roadmap-planning-in-person-in-cartagena) - Aug 23, 2022

- [Common Cypress Testing Pitfalls & How to Avoid Them](https://tracetest.io/blog/common-cypress-testing-pitfalls-how-to-avoid-them) - Aug 18, 2022

- [Tracetest 0.6 Release - gRPC, Postman and More](https://tracetest.io/blog/tracetest-0-6-release-grpc-postman-and-more) - July 27, 2022

- [Creating a Custom Language Code Editor Using React](https://tracetest.io/blog/creating-a-custom-language-code-editor-using-react) - July 22, 2022

- [Integration Tests: Pros and Cons of Doubles vs. Trace-Based Testing](https://tracetest.io/blog/integration-tests-pros-and-cons-of-doubles-vs-trace-based-testing) - July 13, 2022

- [Detect & Fix Performance Issues Using Tracetest](https://tracetest.io/blog/detect-fix-performance-issues-using-tracetest) - July 6, 2022
## Recipes

- [Integrating Tracetest with GitHub Actions in a CI pipeline](https://tracetest.io/blog/integrating-tracetest-with-github-actions-in-a-ci-pipeline) - June 24, 2022
If you're already building something with Tracetest, please explore [Recipes](./recipes.md) — short, self-contained, and runnable solutions to popular use cases.

- [Tracetest — Assertions, Versioning & CI/CD - Release 0.5](https://tracetest.io/blog/tracetest-assertions-versioning-ci-cd) - June 8, 2022

- [Tracing the History of Distributed Tracing & OpenTelemetry](https://kubeshop.io/blog/tracing-the-history-of-distributed-tracing-opentelemetryt) - May 26, 2022

- [Tracetest is released. What’s next?](https://kubeshop.io/blog/tracetest-is-released-whats-next) - May 6, 2022

- [Introducing Tracetest - Trace-based Testing with OpenTelemetry](https://kubeshop.io/blog/introducing-tracetest-trace-based-testing-with-opentelemetry) - April 26, 2022


## Videos

Check out the following videos with Tracetest-related content:

- Recorded livestream: [Tracetest v0.7 Release - Installation & Workflow Updates](https://www.youtube.com/watch?v=iqGYysqNQNk) - Oct 6, 2022

- [Is it Observable | Introduction to Tracetest - with Ken Hamric](https://www.youtube.com/watch?v=xj7tS2owRvk) - Sep 19 2022

- [How Testability Drives Observability - Open Source Summit Dublin](https://www.youtube.com/watch?v=x5sQg4MNFxI) - Sep 14, 2022

- Recorded livestream: [Tracetest v0.6 Release - gRPC, Postman and More](https://www.youtube.com/watch?v=xpEKHK5VXB0) - July 27, 2022

- Recorded livestream: [Introduction to Tracetest - E2E Tests Powered by OpenTelemetry](https://youtu.be/mqwJRxqBNCg) - June 23, 2022
## Tutorials

- Observability-driven development 3-part video tutorial - November 24, 2022:
- [Part 1](https://www.youtube.com/watch?v=LXVBnPqxspY)
- [Part 2](https://www.youtube.com/watch?v=gLl_QmIU7UA)
- [Part 3](https://www.youtube.com/watch?v=lHMDDyAtxWE)
Check out the following blog posts with Tracetest-related content.

### Integrations

- [Trace-based testing cloud-native apps with AWS X-Ray and Tracetest](https://tracetest.io/blog/trace-based-testing-cloud-native-apps-with-aws-x-ray-and-tracetest)
- [Event-driven Kubernetes testing with Testkube and Tracetest](https://tracetest.io/blog/event-driven-kubernetes-testing-with-testkube-and-tracetest)
- [Announcing the Tracetest integration with Keptn](https://tracetest.io/blog/announcing-the-tracetest-integration-with-keptn-the-control-plane-for-cloud-native-application-life-cycle-orchestration)
- [Tracetest + k6: Deep Load Testing of your Cloud Native System](https://tracetest.io/blog/announcing-the-tracetest-integration-with-k6-deep-load-testing-of-your-cloud-native-system)
- [Tracetest + Elastic: Trace-based testing meets APM](https://tracetest.io/blog/tracetest-integration-elastic-trace-based-testing-application-performance-monitoring)
- [Announcing the Tracetest integration with Lightstep](https://tracetest.io/blog/tracetest-integration-with-lightstep)
- [Observability and Trace-based Testing in AWS](https://tracetest.io/blog/observability-trace-based-testing-aws-serverless-opensearch-tracetest)
- [Enabling Tracetest to Work Directly with OpenSearch](https://tracetest.io/blog/tracetest-opensearch-integration)
- [Integrating Tracetest with GitHub Actions in a CI pipeline](https://tracetest.io/blog/integrating-tracetest-with-github-actions-in-a-ci-pipeline)

### Best Practices

- [Running Trace-Based Tests on the OpenTelemetry Demo App with Nomad](https://tracetest.io/blog/tracetest-in-action-running-trace-based-tests-on-the-opentelemetry-demo-app-with-nomad)
- [Ad Hoc Testing of Distributed Systems](https://tracetest.io/blog/ad-hoc-testing-of-distributed-systems)
- [Chaining API Tests to Handle Complex Distributed System Testing](https://tracetest.io/blog/chaining-api-tests-to-handle-complex-distributed-system-testing)
- [Observability-driven development with Go and Tracetest](https://tracetest.io/blog/observability-driven-development-with-go-and-tracetest)
- [The difference between test-driven & observability-driven development](https://tracetest.io/blog/the-difference-between-tdd-and-odd)
- [Integration Tests: Pros and Cons of Doubles vs. Trace-Based Testing](https://tracetest.io/blog/integration-tests-pros-and-cons-of-doubles-vs-trace-based-testing)
- [Detect & Fix Performance Issues Using Tracetest](https://tracetest.io/blog/detect-fix-performance-issues-using-tracetest)

### OpenTelemetry Community

- [Frontend Overhaul of the OpenTelemetry Demo (Go to Next.js)](https://tracetest.io/blog/frontend-overhaul-opentelemetry-demo)
- [Is it Observable? with Henrik Rexed](https://tracetest.io/blog/is-it-observable-with-henrik-rexed)
- [Tracing the History of Distributed Tracing & OpenTelemetry](https://tracetest.io/blog/tracing-the-history-of-distributed-tracing-opentelemetry)

### Webinars

- [Tracetest Community Call in April 2023 - Tracetest turns 1 year old!](https://www.youtube.com/watch?v=OrstjSvMFio)
- [Tracetest Community Call in March 2023](https://www.youtube.com/watch?v=U_94bEptrrE)
- [Trace-based testing in Kubernetes](https://www.youtube.com/watch?v=nAp3zYgykok)
- [Tracetest Community Call in February 2023](https://www.youtube.com/watch?v=v0lgw6t58YA)
- [Integrating k6 and Tracetest (k6 Office Hours #77)](https://www.youtube.com/watch?v=Dog70D7aVyg)
- [Keptn Community & Developer Meeting - Feb 1, 2023](https://youtu.be/-9X3XTdGK_s?t=767)
- [Tracetest Community Call in January 2023](https://www.youtube.com/watch?v=n5ESTR8vpH8)
- [Tracetest v0.8 Release - Transactions and Environments](https://www.youtube.com/watch?v=mp7f4RVi97g)
- [Tracetest v0.7 Release - Installation & Workflow Updates](https://www.youtube.com/watch?v=iqGYysqNQNk)
- [Is it Observable | Introduction to Tracetest - with Ken Hamric](https://www.youtube.com/watch?v=xj7tS2owRvk)
- [Tracetest v0.6 Release - gRPC, Postman and More](https://www.youtube.com/watch?v=xpEKHK5VXB0)
- [Introduction to Tracetest - E2E Tests Powered by OpenTelemetry](https://youtu.be/mqwJRxqBNCg)

### Conference Talks

- [Observability-driven development with OpenTelemetry - FOSDEM 2023](https://2023.fosdem.sojourner.rocks/event/14490)
- [How Testability Drives Observability - Open Source Summit Dublin 2022](https://www.youtube.com/watch?v=x5sQg4MNFxI)

### Video Courses

- Observability-driven development 3-part video tutorial:
- [Part 1](https://www.youtube.com/watch?v=LXVBnPqxspY)
- [Part 2](https://www.youtube.com/watch?v=gLl_QmIU7UA)
- [Part 3](https://www.youtube.com/watch?v=lHMDDyAtxWE)
38 changes: 34 additions & 4 deletions docs/docs/examples-tutorials/recipes.md
Expand Up @@ -2,21 +2,51 @@

These recipes will show you the best practices for using Tracetest.

## Trace Data Stores

These recipes show integrations with trace data stores and tracing vendors/providers.

### OpenTelemetry Collector

This integration point uses the OpenTelemetry Collector as a router to send trace data to both Tracetest and tracing vendors/providers.

- [Sending traces directly to Tracetest from a Node.js app using OpenTelemetry Collector](./recipes/running-tracetest-without-a-trace-data-store.md)
- [Sending traces with manual instrumentation directly to Tracetest from a Node.js app using OpenTelemetry Collector](./recipes/running-tracetest-without-a-trace-data-store-with-manual-instrumentation.md)
- [Sending traces with manual instrumentation directly to Tracetest from a Python app using OpenTelemetry Collector](./recipes/running-python-app-with-opentelemetry-collector-and-tracetest.md)
- [Sending traces to Jaeger from a Node.js app and fetching them from Jaeger with Tracetest](./recipes/running-tracetest-with-jaeger.md)
- [Sending traces to OpenSearch from a Node.js app and fetching them from OpenSearch with Tracetest](./recipes/running-tracetest-with-opensearch.md)
- [Sending traces to Tempo from a Node.js app and fetching them from Tempo with Tracetest](./recipes/running-tracetest-with-tempo.md)
- [Sending traces to Lightstep and Tracetest from the OpenTelemetry Demo with OpenTelemetry Collector](./recipes/running-tracetest-with-lightstep.md)
- [Sending traces to New Relic and Tracetest from the OpenTelemetry Demo with OpenTelemetry Collector](./recipes/running-tracetest-with-new-relic.md)
- [Sending traces to Datadog and Tracetest from the OpenTelemetry Demo with OpenTelemetry Collector](./recipes/running-tracetest-with-datadog.md)

### Jaeger

- [Sending traces to Jaeger from a Node.js app and fetching them from Jaeger with Tracetest](./recipes/running-tracetest-with-jaeger.md)
- [Running Tracetest on AWS Fargate with Terraform](./recipes/running-tracetest-with-aws-terraform.md)

### OpenSearch

- [Sending traces to OpenSearch from a Node.js app and fetching them from OpenSearch with Tracetest](./recipes/running-tracetest-with-opensearch.md)

### Elastic

- [Sending traces to Elastic APM from a Node.js app and fetching them from Elasticsearch with Tracetest](./recipes/running-tracetest-with-elasticapm.md)

### Grafana Tempo

- [Sending traces to Tempo from a Node.js app and fetching them from Tempo with Tracetest](./recipes/running-tracetest-with-tempo.md)

### AWS X-Ray

- [Running Tracetest with AWS X-Ray (AWS X-Ray Node.js SDK)](./recipes/running-tracetest-with-aws-x-ray.md)
- [Running Tracetest with AWS X-Ray (AWS X-Ray Node.js SDK & AWS Distro for OpenTelemetry)](./recipes/running-tracetest-with-aws-x-ray-adot.md)
- [Running Tracetest with AWS X-Ray (AWS Distro for OpenTelemetry & Pokeshop API)](./recipes/running-tracetest-with-aws-x-ray-pokeshop.md)
- [Running Tracetest on AWS Fargate with Terraform](./recipes/running-tracetest-with-aws-terraform.md)
- [Running Tracetest with AWS Step Functions, AWS X-Ray and Terraform](./recipes/running-tracetest-with-step-functions-terraform.md)

## Tools

These recipes show integrations with other tools and vendors.

### Testkube

- [Running Tracetest with Testkube](./recipes/running-tracetest-with-testkube.md)

Stay tuned! More recipes are coming soon. 🚀
Expand Up @@ -4,7 +4,7 @@
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/quick-start-python)
:::

[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use your telemetry data generated by the OpenTelemetry tools to check and assert if your application has the desired behavior defined by your test definitions.
[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use data from distributed traces generated by OpenTelemetry to validate and assert if your application has the desired behavior defined by your test definitions.

## Sample Python app with OpenTelemetry Collector and Tracetest

Expand Down
Expand Up @@ -4,7 +4,7 @@
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/tracetest-aws-terraform-serverless)
:::

[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use your telemetry data generated by the OpenTelemetry tools to check and assert if your application has the desired behavior defined by your test definitions.
[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use data from distributed traces generated by OpenTelemetry to validate and assert if your application has the desired behavior defined by your test definitions.

[Jaeger](https://www.jaegertracing.io/) is an open-source, end-to-end distributed tracing solution. It allows you to monitor and troubleshoot transactions in complex distributed systems. It was developed and open sourced by Uber Technologies. Jaeger provides a distributed tracing solution to enable transactions across multiple heterogeneous systems or microservices to be tracked and displayed as a cascading series of spans.

Expand Down
Expand Up @@ -4,7 +4,7 @@
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/tracetest-amazon-x-ray-adot)
:::

[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use your telemetry data generated by the OpenTelemetry tools to check and assert if your application has the desired behavior defined by your test definitions.
[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use data from distributed traces generated by OpenTelemetry to validate and assert if your application has the desired behavior defined by your test definitions.

[AWS X-Ray](https://aws.amazon.com/xray/) provides a complete view of requests as they travel through your application and filters visual data across payloads, functions, traces, services, APIs and more with no-code and low-code motions.

Expand Down
Expand Up @@ -4,7 +4,7 @@
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/tracetest-amazon-x-ray-pokeshop)
:::

[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use your telemetry data generated by the OpenTelemetry tools to check and assert if your application has the desired behavior defined by your test definitions.
[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use data from distributed traces generated by OpenTelemetry to validate and assert if your application has the desired behavior defined by your test definitions.

[AWS X-Ray](https://aws.amazon.com/xray/) provides a complete view of requests as they travel through your application and filters visual data across payloads, functions, traces, services, APIs, and more with no-code and low-code motions.

Expand Down
Expand Up @@ -4,7 +4,7 @@
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/tracetest-amazon-x-ray)
:::

[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use your telemetry data generated by the OpenTelemetry tools to check and assert if your application has the desired behavior defined by your test definitions.
[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use data from distributed traces generated by OpenTelemetry to validate and assert if your application has the desired behavior defined by your test definitions.

[AWS X-Ray](https://aws.amazon.com/xray/) provides a complete view of requests as they travel through your application and filters visual data across payloads, functions, traces, services, APIs and more with no-code and low-code motions.

Expand Down
Expand Up @@ -4,7 +4,7 @@
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/tracetest-datadog)
:::

[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use your telemetry data generated by the OpenTelemetry tools to check and assert if your application has the desired behavior defined by your test definitions.
[Tracetest](https://tracetest.io/) is a testing tool based on [OpenTelemetry](https://opentelemetry.io/) that allows you to test your distributed application. It allows you to use data from distributed traces generated by OpenTelemetry to validate and assert if your application has the desired behavior defined by your test definitions.

[Datadog](https://www.datadoghq.com/) is an observability solution for cloud-scale applications, providing solutions to monitor databases, servers, tools and services. It provides integrated distributed tracing, logs and metrics solutions and supports OpenTelemetry standards.

Expand Down

0 comments on commit 8e39db1

Please sign in to comment.