Overview

Facets are user-defined tags and attributes from your tests. They are useful for both qualitative and quantitative data analysis. Facets allow you to manipulate your tests in your CI Test monitors, and in search queries that appear on dashboards and in notebooks.

Creating facets is not required for searching test runs. Autocomplete capabilities use existing facets, but also any input that matches incoming test runs applies.

Common facets

Navigate to Software Delivery > Test Optimization > Test Runs to access the list of facets left of the test runs list.

You can use facets in the Test Optimization Explorer to:

The Test Optimization Explorer includes the following out-of-the-box facets:

FacetDescription
CI ProviderName of the CI provider (GitHub, GitLab, and more).
Pipeline NameName of the CI pipeline.
Node NameName of the CI node that executed the pipeline, stage, or job.
Node LabelsLabels associated with the CI node that executed the pipeline, stage, or job.
Pipeline URLProvider URL for a pipeline execution.
Pipeline IDID of the pipeline.
Pipeline NumberExecution number of a CI pipeline, provided by the CI Provider. This increases when partially retrying a pipeline.
Job URLProvider URL for a job execution.
Stage NameName of the CI stage.
Job NameName of the CI job.
Kubernetes NamespaceThe namespace in which the Kubernetes Pod is running.
Kubernetes Pod NameName of the Kubernetes Pod.
Image TagKubernetes Container image tag.
Container NameKubernetes Container name tag.
Image NameKubernetes Container image name tag.
Container IDKubernetes Container ID.
Kubernetes Container NameName of the Kubernetes Container.
Kubernetes DeploymentThe Kubernetes Deployment a pod belongs to.
Kubernetes Stateful SetThe Kubernetes StatefulSet a pod belongs to.
Repository URLURL of the Git repository.
Repository IDID that uniquely identifies a Git repository.
Commit SHAGit Commit SHA.
BranchGit Branch.
TagGit Tag.
Author EmailGit Author Email.
Committer EmailGit Committer Email.
Committer DateGit Committer Date.
Author DateGit Author Date.
EnvThe environment in which the CI pipeline is running.
ResourceThe resource utilized by the CI pipeline.
Operation NameThe operation performed within the CI pipeline.
Error TypeType of error encountered during the CI execution.
TypeType of the CI execution or entity.
Complete TraceFull trace of the CI pipeline execution.
DurationThe duration of the execution in seconds.
VersionVersion of the CI pipeline or tool used.
Is Default BranchIndicates if the execution was run on the default branch of the Git repository.

Qualitative facets

Use qualitative facets when you need to:

  • Get relative insights for values.
  • Count unique values.
  • Frequently filter your test runs against particular values. For example, create a facet on an environment tag to scope troubleshooting down to development, staging, or production environments.

Note: Although facets are not required for filtering on tags, defining facets for tags that you often use during investigations can help reduce your time to resolution.

Quantitative measures

Use quantitative measures when you need to:

  • Aggregate values from multiple test runs.
  • Range filter your test runs.
  • Sort your test runs against that value.

Types

Measures have either a long integer or double value for equivalent capabilities.

Units

Measures support units (time in seconds or size in bytes) for handling of orders of magnitude at query time and display time. The unit is a property of the measure itself, not of the field.

For example, consider a duration measure in nanoseconds. Suppose test runs from service:A have duration:10000000, meaning 10 milliseconds. Supposed test runs from service:B have duration:5000000, meaning 5 milliseconds. Use duration:>2ms to consistently query test run tags from both services at once. For more information about search queries, see Search Syntax.

Facet panel

The search bar provides the most comprehensive set of interactions to filter and group your data. However, for many cases, the facet panel is a straightforward way to navigate into your data. Open a facet to see a summary of its content for the scope of the current query.

The search bar and URL automatically reflect your selections from the facet panel.

  • Facets (qualitative) come with a top list of unique values, and a count of test runs matching each of them.
  • Measures (quantitative) come with a slider indicating minimum and maximum values. Use the slider, or input numerical values, to scope the search query to different bounds.

Grouping facets

Facets are grouped into meaningful themes in the facet list. Assigning or reassigning a group for a facet affects only the facet list, and has no impact on search or analytics.

Filtering facets

Use the search facets box on the facet panel to scope the whole facet list and navigate to the facet you need to interact with. Search facets uses the facet display name and field name to scope results.

Creating facets

Creating a facet on a test run attribute or tag is not a mandatory step to search for test runs. Facets are useful if you wish to add a meaningful description to a specific test run attribute, or if you want the attribute values to appear on the Facets list.

Creating facets from the Test Runs side panel

The easiest way to create a facet is to add it from the Test Runs side panel so that most of the facet details are pre-filled.

Create a facet from a failed test run in the Test Runs side panel
  1. Navigate to a test run of interest in the Test Optimization Explorer that contains the field to create a facet on.

  2. Open the Test Runs side panel by selecting the test run from the list.

  3. Click on the desired field (in the Other tags section for a test run) and create a facet from there:

    • If the field has a numerical value, you can create either a facet or a measure.
    • If the field has a string value, only facet creation is available.

Creating facets from the facet list

If finding a test run that has the desired field is not an option, create a facet directly from the facet panel by clicking + Add.

Add a facet from the facet side panel

Define the underlying field (key) name for this facet:

  • Use tag key name for infrastructure tags.
  • Use the attribute path for test run attributes, with @ prefix.

Autocomplete based on the content in test runs of the current views helps you to define the proper field name. But you can use virtually any value here, specifically in the case that you don’t yet have matching test runs received by Datadog.

Further reading