Skip to main content

Welcome to Tracetest Docs! 👋

Tracetest is a trace-based testing tool for integration and end-to-end testing using OpenTelemetry traces. Verify end-to-end transactions and side-effects across microservices & event-driven apps by using trace data as test specs.

👇 Getting Started

Set up Tracetest and start trace-based testing your distributed system.

🤩 Open Source

Check out the Tracetest GitHub repo! Please consider giving us a star! ⭐️

⚙️ Configure access and tracing backend

Configure app access & connect tracing backend / OTLP ingestion!

🙄 New to Trace-based Testing?

Read about the concepts of trace-based testing to learn more!

Why Tracetest?

You can:

  • Assert against both the response and trace data at every point of a request transaction.
  • Assert on the timing of trace spans.
    • Eg. A database span executes within 100ms.
  • Wildcard assertions across common types of activities.
    • Eg. All gRPC return codes should be 0.
    • Eg. All database calls should happen in less than 100ms.
  • Assert against side-effects in your distributed system.
    • Eg. Message queues, async API calls, external APIs, etc.
  • Integrate with your existing distributed tracing solution.
  • Define multiple test triggers:
    • HTTP requests
    • gRPC requests
    • Trace IDs
    • and many more...
  • Save and run tests manually and via CI build jobs.
  • Verify and analyze the quality of your OpenTelemetry instrumentation to enforce rules and standards.
  • Test long-running processes.
  • Write detailed trace-based tests as:
    • End-to-end tests
    • Integration tests
  • Build tests in minutes.

Visually - Build tests in the Web UI

Programmatically - Build tests in YAML

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. After creating an account, getting started is as easy as installing the Tracetest Agent.

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 to get into early access.

Hobby Self-hosted Open-source Tracetest Core

Deploy a hobby self-hosted instance of Tracetest Core 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.

  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

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.