Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(mdx): Migrate files to .mdx and add meta title + desc #3323

Merged
merged 10 commits into from
Nov 1, 2023
21 changes: 16 additions & 5 deletions docs/docs/analyzer/concepts.md → docs/docs/analyzer/concepts.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
# Trace Analyzer Concepts
---
id: concepts
title: Trace Analyzer Concepts
description: The Tracetest Analyzer analyzes OpenTelemetry traces to help teams improve instrumentation data, find potential problems, and provide tips to fix the problems.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

The Tracetest Analyzer is a plugin-based framework used to analyze OpenTelemetry traces to help teams improve their instrumentation data, find potential problems and provide tips to fix the problems.

## Plugins

- [OpenTelemetry Semantic Conventions](./plugins/otel-semantic-conventions.md)
- [Security](./plugins/security.md)
- [Common Problems](./plugins/common-problems.md)
- [OpenTelemetry Semantic Conventions](./plugins/otel-semantic-conventions)
- [Security](./plugins/security)
- [Common Problems](./plugins/common-problems)

## Problem

Expand Down Expand Up @@ -40,7 +51,7 @@ There are two main rule types:
- Single Trace. Encapsulated to the current trace, no external data is required.

:::note
[This documentation will be focused on single trace rules for timing purposes.](../configuration/tracetest-analyzer.md)
[This documentation will be focused on single trace rules for timing purposes.](../configuration/tracetest-analyzer)
:::

### Analyzer Resource
Expand Down
7 changes: 0 additions & 7 deletions docs/docs/analyzer/plugins/common-problems.md

This file was deleted.

18 changes: 18 additions & 0 deletions docs/docs/analyzer/plugins/common-problems.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
id: common-problems
title: Common Problems
description: The Common Problems plugin analyzes spans part of a trace to identify errors. The Tracetest Analyzer analyzes OpenTelemetry traces.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

The `Common Problems` plugin is responsible of analyzing the spans that are part of a trace in order to identify frequent mistakes in the distributed system.

## Rules

- [prefer-dns](/analyzer/rules/prefer-dns)
10 changes: 0 additions & 10 deletions docs/docs/analyzer/plugins/otel-semantic-conventions.md

This file was deleted.

21 changes: 21 additions & 0 deletions docs/docs/analyzer/plugins/otel-semantic-conventions.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
id: otel-semantic-conventions
title: OTel Semantic Conventions
description: The OpenTelemetry Semantic Conventions plugin analyzes spans part of a trace in order to identify problematic patterns. The Tracetest Analyzer analyzes OpenTelemetry traces.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

The `OpenTelemetry Semantic Conventions` plugin analyzes the spans that are part of a trace in order to identify problematic patterns. The set of rules follows the OpenTelemetry conventions to ensure the quality of the telemetry data.

## Rules

- [span-naming](/analyzer/rules/span-naming)
- [attribute-naming](/analyzer/rules/attribute-naming)
- [required-attributes](/analyzer/rules/required-attributes)
- [no-empty-attributes](/analyzer/rules/no-empty-attributes)
8 changes: 0 additions & 8 deletions docs/docs/analyzer/plugins/security.md

This file was deleted.

19 changes: 19 additions & 0 deletions docs/docs/analyzer/plugins/security.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
id: security
title: Security
description: The Security plugin is responsible for analyzing spans part of a trace to identify security problems. The Tracetest Analyzer analyzes OpenTelemetry traces.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

The `Security` plugin is responsible for analyzing the spans that are part of a trace in order to identify security problems in the distributed system.

## Rules

- [secure-https-protocol](/analyzer/rules/secure-https-protocol)
- [no-api-key-leak](/analyzer/rules/no-api-key-leak)
28 changes: 0 additions & 28 deletions docs/docs/analyzer/rules/attribute-naming.md

This file was deleted.

39 changes: 39 additions & 0 deletions docs/docs/analyzer/rules/attribute-naming.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
id: attribute-naming
title: attribute-naming
description: Enforce attribute keys to follow common specifications | The Tracetest Analyzer analyzes OpenTelemetry traces
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

Enforce attribute keys to follow common specifications.

## Rule Details

An `Attribute` is a key-value pair, which is encapsulated as part of a span. The attribute key should follow a set of common specifications to be considered valid.

The following OpenTelemetry Semantic Conventions for attribute keys are defined:

- It must be a non-null and non-empty string.
- It must be a valid Unicode sequence.
- It should use namespacing to avoid name clashes. Delimit the namespaces using a dot character. For example `service.version` denotes the service version where `service` is the namespace and `version` is an attribute in that namespace.
- Namespaces can be nested. For example `telemetry.sdk` is a namespace inside top-level `telemetry` namespace and `telemetry.sdk.name` is an attribute inside `telemetry.sdk` namespace.
- For each multi-word separate the words by underscores (use snake_case). For example `http.status_code` denotes the status code in the http namespace.
- Names should not coincide with namespaces. For example if `service.instance.id` is an attribute name then it is no longer valid to have an attribute named `service.instance` because `service.instance` is already a namespace.

## Options

This rule has the following options:

- `"error"` requires attribute keys to follow the OTel semantic convention
- `"disabled"` disables the attribute keys verification
- `"warning"` verifies attribute keys to follow the OTel semantic convention but does not impact the analyzer score

## When Not To Use It

If you don’t want to enforce OTel attribute keys, don't enable this rule.
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# no-api-key-leak
---
id: no-api-key-leak
title: no-api-key-leak
description: Disallow leaked API keys for HTTP spans | The Tracetest Analyzer analyzes OpenTelemetry traces
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

Disallow leaked API keys for HTTP spans.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# no-empty-attributes
---
id: no-empty-attributes
title: no-empty-attributes
description: Disallow empty attribute values | The Tracetest Analyzer analyzes OpenTelemetry traces
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

Disallow empty attribute values.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# prefer-dns
---
id: prefer-dns
title: prefer-dns
description: Enforce usage of DNS instead of IP addresses | The Tracetest Analyzer analyzes OpenTelemetry traces
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

Enforce usage of DNS instead of IP addresses.

Expand All @@ -8,14 +19,14 @@ When connecting to remote servers, ensure the usage of DNS instead of IP address

The following attributes are evaluated:

```
```yaml
- http.url
- db.connection_string
```

If span kind is `"client"`, the following attributes are evaluated:

```
```yaml
- net.peer.name
```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# required-attributes
---
id: required-attributes
title: required-attributes
description: Enforce required attributes by span type | The Tracetest Analyzer analyzes OpenTelemetry traces
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

Enforce required attributes by span type.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# secure-https-protocol
---
id: secure-https-protocol
title: secure-https-protocol
description: Enforce usage of secure protocol for HTTP server spans | The Tracetest Analyzer analyzes OpenTelemetry traces
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

Enforce usage of secure protocol for HTTP server spans.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
# span-naming

Enforce span names that identify a class of Spans, rather than individual Span instances.
---
id: span-naming
title: span-naming
description: Enforce span names that identify a class of Spans, rather than individual Span instances | The Tracetest Analyzer analyzes OpenTelemetry traces
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

Enforce span names that identify a class of Spans, rather than individual Span instances.

## Rule Details

The span name concisely identifies the work represented by the Span, for example, an RPC method name, a function name, or the name of a subtask or stage within a larger computation. The span name SHOULD be the most general string that identifies a class of Spans, rather than individual Span instances while still being human-readable.
The span name concisely identifies the work represented by the Span, for example, an RPC method name, a function name, or the name of a subtask or stage within a larger computation. The span name SHOULD be the most general string that identifies a class of Spans, rather than individual Span instances while still being human-readable.

The following OTel semantic conventions for span names are defined:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# GitHub Actions Pipeline
---
id: github-actions-pipeline
title: GitHub Actions Pipeline
description: Quick start how to configure GitHub Actions to run Tracetest trace-based tests against a Node.js app with OpenTelemetry instrumentation and traces.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

:::note
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/quick-start-github-actions)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
# CI/CD Automation
---
id: overview
title: CI/CD Automation
description: Overview of running automated trace-based testing with Tracetest in CI/CD pipelines.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

This section contains a general overview of running Tracetest in CI/CD pipelines.

You can find guides for:

- [GitHub Actions](./github-actions-pipeline.md)
- [Testkube](./testkube-pipeline.md)
- [Tekton](./tekton-pipeline.md)
- [GitHub Actions](/ci-cd-automation/github-actions-pipeline)
- [Testkube](/ci-cd-automation/testkube-pipeline)
- [Tekton](/ci-cd-automation/tekton-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)!
Expand All @@ -21,7 +32,7 @@ To read more about integrating Tracetest with CI/CD tools, check out tutorials i

## Running Tracetest CLI from Docker

Many integrations with CI/CD tools can be accomplished by running the [Tracetest CLI](../cli/configuring-your-cli.md) to execute a test against a remote Tracetest server. If you do not want to install the Tracetest CLI in your environment, you can choose to directly execute it from a Docker image.
Many integrations with CI/CD tools can be accomplished by running the [Tracetest CLI](../cli/configuring-your-cli) to execute a test against a remote Tracetest server. If you do not want to install the Tracetest CLI in your environment, you can choose to directly execute it from a Docker image.

**How to Use**:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# Tekton Cloud-native Pipeline
---
id: tekton-pipeline
title: Tekton Cloud-native Pipeline
description: Use Tracetest with Tekton to add trace-based testing to Kubernetes-native CI/CD pipelines. Run scheduled and synthetic tests against trace data.
keywords:
- tracetest
- trace-based testing
- observability
- distributed tracing
- testing
image: https://res.cloudinary.com/djwdcmwdz/image/upload/v1698686403/docs/Blog_Thumbnail_14_rsvkmo.jpg
---

:::note
[Check out the source code on GitHub here.](https://github.com/kubeshop/tracetest/tree/main/examples/quick-start-tekton)
Expand Down