Skip to content
Allure report logoAllure Report
Main Navigation ModulesDocumentationStarter Project

English

Español

English

Español

Appearance

Sidebar Navigation

Allure 3

Install & Upgrade

Install Allure

Upgrade Allure

Configure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Reading Allure charts

Migrate from Allure 2

Allure 2

Install & Upgrade

Install for Windows

Install for macOS

Install for Linux

Install for Node.js

Upgrade Allure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Features

Agent Mode

Test steps

Attachments

Test statuses

Assertion diffs

Sorting and filtering

Environments

Multistage Builds

Categories

Visual analytics

Test stability analysis

History and retries

Self-hosted storage

Quality Gate

Resolutions

Global Errors and Attachments

Timeline

Performance Metrics

Export to CSV

Export metrics

Guides

Migrating to Allure Java 3

JUnit 5 parametrization

JUnit 5 & Selenide: screenshots and attachments

JUnit 5 & Selenium: screenshots and attachments

Setting up JUnit 5 with GitHub Actions

Pytest parameterization

Pytest & Selenium: screenshots and attachments

Pytest & Playwright: screenshots and attachments

Pytest & Playwright: videos

Playwright parameterization

Publishing Reports to GitHub Pages

Deploying Self-Hosted Storage with Docker

Deploying Self-Hosted Storage on Cloudflare Workers

Allure Report 3: XCResults Reader

How it works

Overview

Glossary

Test result file

Container file

Categories file

Environment file

Executor file

History files

Test Identifiers

Integrations

Azure DevOps

Bamboo

GitHub Action

Gradle

Jenkins

JetBrains IDEs

Maven

Slack

TeamCity

Visual Studio Code

Xray

Frameworks

AVA

Getting started

Configuration

Reference

Axios

Getting started

Configuration

Reference

Behat

Getting started

Configuration

Reference

Behave

Getting started

Configuration

Reference

Bun

Getting started

Configuration

Reference

Chai

Getting started

Reference

Codeception

Getting started

Configuration

Reference

CodeceptJS

Getting started

Configuration

Reference

Cucumber.js

Getting started

Configuration

Reference

Cucumber-JVM

Getting started

Configuration

Reference

Cucumber.rb

Getting started

Configuration

Reference

Cypress

Getting started

Configuration

Reference

Dart and Flutter

Getting started

Configuration

Reference

Diesel

Getting started

Configuration

Reference

Fetch

Getting started

Configuration

Reference

Go

Getting started

Configuration

Reference

Jasmine

Getting started

Configuration

Reference

JBehave

Getting started

Configuration

Reference

Jest

Getting started

Configuration

Reference

JUnit 4

Getting started

Configuration

Reference

JUnit Jupiter

Getting started

Configuration

Reference

Mocha

Getting started

Configuration

Reference

Newman

Getting started

Configuration

Reference

Node.js Test Runner

Getting started

Configuration

Reference

NUnit

Getting started

Configuration

Reference

PHPUnit

Getting started

Configuration

Reference

Playwright

Getting started

Configuration

Reference

Playwright Java

Getting started

Configuration

Reference

pytest

Getting started

Configuration

Reference

Pytest-BDD

Getting started

Configuration

Reference

Reqnroll

Getting started

Configuration

Reference

Reqwest

Getting started

Configuration

Reference

REST Assured

Getting started

Configuration

Robot Framework

Getting started

Configuration

Reference

Rust Cargo Test

Getting started

Configuration

Reference

RSpec

Getting started

Configuration

Reference

Selenide

Getting started

Configuration

Reference

Selenium BiDi

Getting started

Configuration

Reference

SpecFlow

Getting started

Configuration

Reference

Spock

Getting started

Configuration

Reference

TestCafe

Getting started

Configuration

Reference

TestNG

Getting started

Configuration

Reference

Tinybench

Getting started

Reference

Vitest

Getting started

Configuration

Reference

WebdriverIO

Getting started

Configuration

Reference

xUnit.net

Getting started

Configuration

Reference

On this page

Export metrics ​

TIP

This page describes how to export test statistics, such as the number of tests with each status or the duration of the run. To collect your own measurements, such as page load times, see Performance Metrics. In Allure Report 3, you can export their averages together with the test statistics.

Allure Report can write aggregate test data to files that can be imported to InfluxDB or Prometheus for building custom graphs. By default, the files are placed in the export subdirectory of the report directory.

  • Allure Report 2 writes the files for every report.
  • Allure Report 3 writes the same files when the metrics plugin is enabled, with the same metric names except for the default categories. It can also push the data to Prometheus Pushgateway or InfluxDB.

Enable the export in Allure Report 3 ​

The metrics plugin is included in the allure package. To enable it, add it to the plugins section of the configuration file. Only the plugins listed in this section are run, so keep the plugin of the report you want to generate, for example, awesome:

javascript
import { defineConfig } from "allure";

export default defineConfig({
  plugins: {
    awesome: {},
    metrics: {},
  },
});
json
{
  "plugins": {
    "awesome": {},
    "metrics": {}
  }
}
yaml
plugins:
  awesome: {}
  metrics: {}

With this configuration, Allure writes both export/prometheusData.txt and export/influxDbData.txt to the report directory, next to the report itself.

To write only one of the files, enable it explicitly, for example, prometheus: true. If neither prometheus nor influxdb is set, both files are written.

OptionDescriptionDefault
prometheustrue or an object with the Prometheus optionsEnabled if neither is set
influxdbtrue or an object with the InfluxDB optionsEnabled if neither is set
performanceMetricsIf true, performance metrics are exported toofalse
failOnPushErrorIf true, the report generation fails when pushing the data fails. Otherwise, Allure only prints a warningfalse
pushTimeoutTimeout of a single push request, in milliseconds10000

Prometheus options ​

OptionDescriptionDefault
fileNamePath to the file, relative to the report directory, or an absolute pathexport/prometheusData.txt
labelsLabels to add to every metric: an object, such as { team: "qa" }, or a ready string, such as team="qa",env="ci". If not set, Allure takes them from the ALLURE_PROMETHEUS_LABELS environment variableNo labels
pushgatewaySettings for pushing the metrics to Prometheus PushgatewayNo push

InfluxDB options ​

OptionDescriptionDefault
fileNamePath to the file, relative to the report directory, or an absolute pathexport/influxDbData.txt
pushSettings for pushing the data to the InfluxDB write APINo push

Push the data ​

After writing the files, Allure can send the same data to Prometheus Pushgateway and to InfluxDB:

javascript
import { defineConfig } from "allure";

export default defineConfig({
  plugins: {
    awesome: {},
    metrics: {
      options: {
        prometheus: {
          labels: { team: "qa" },
          pushgateway: {
            url: "http://localhost:9091",
            job: "allure",
            grouping: { instance: "ci" },
          },
        },
        influxdb: {
          push: {
            url: "http://localhost:8086",
            org: "qa",
            bucket: "allure",
            tokenEnv: "INFLUXDB_TOKEN",
          },
        },
      },
    },
  },
});
json
{
  "plugins": {
    "awesome": {},
    "metrics": {
      "options": {
        "prometheus": {
          "labels": { "team": "qa" },
          "pushgateway": {
            "url": "http://localhost:9091",
            "job": "allure",
            "grouping": { "instance": "ci" }
          }
        },
        "influxdb": {
          "push": {
            "url": "http://localhost:8086",
            "org": "qa",
            "bucket": "allure",
            "tokenEnv": "INFLUXDB_TOKEN"
          }
        }
      }
    }
  }
}
yaml
plugins:
  awesome: {}
  metrics:
    options:
      prometheus:
        labels:
          team: qa
        pushgateway:
          url: http://localhost:9091
          job: allure
          grouping:
            instance: ci
      influxdb:
        push:
          url: http://localhost:8086
          org: qa
          bucket: allure
          tokenEnv: INFLUXDB_TOKEN

This example pushes to a Pushgateway that doesn't require authentication and to InfluxDB 2.x, with the API token taken from the INFLUXDB_TOKEN environment variable. The tables below list all the options.

We recommend keeping the secrets in environment variables rather than in the configuration file.

Pushgateway options ​

OptionDescriptionDefault
urlPushgateway address. Required
jobValue of the job grouping keyallure
groupingAdditional grouping keys, for example, { instance: "ci" }
authorizationEnvName of the environment variable with the value of the Authorization header, if the Pushgateway requires authentication. The value must include the scheme, for example, Basic dXNlcjpwYXNzd29yZA== for basic authenticationNo header
authorizationValue of the Authorization header, set directly in the configuration fileNo header

Each push replaces all metrics of the group in the Pushgateway, so metrics from previous runs don't remain there.

InfluxDB push options ​

OptionDescriptionInfluxDB version
urlInfluxDB address. Required2.x and 1.x
orgOrganization name or ID. Required with bucket2.x
bucketBucket to write to2.x
tokenEnvName of the environment variable with the API token2.x
tokenAPI token, set directly in the configuration file2.x
dbDatabase to write to. Used if bucket is not set1.x
usernameUser name for authentication1.x
passwordEnvName of the environment variable with the password1.x
passwordPassword, set directly in the configuration file1.x

Export performance metrics ​

If you collect performance metrics, set performanceMetrics: true to export them too. For each metric key, Allure exports the average value of the run: in Prometheus, as launch_metric_<key>, with dots in the key replaced by underscores, and in InfluxDB, as a field of the launch_metric measurement named after the key.

InfluxDB measurements ​

The export/influxDbData.txt file contains aggregate test data in the line protocol format for InfluxDB. When imported, it creates the following measurements.

MeasurementTags

launch_status

One tag per each possible test status: failed, broken, passed, skipped, unknown.

Each value represents the number of tests with the status.

launch_time

duration - the time it took to run all tests.
min_duration - the duration of the fastest test run.
max_duration - the duration of the slowest test run.
sum_duration - all durations, combined.
start - the time when the first test started, as a timestamp in milliseconds.
stop - the time when the last test finished, as a timestamp in milliseconds.

The values for duration and sum_duration may differ significantly if your test framework runs tests in parallel or spends significant time preparing for each test.

launch_problems

One tag per each non-empty category.

Each category's name is converted to lowercase, and the spaces are replaced with underscores, for example: test_defects, product_defects.

Each value represents the number of tests in the category.

launch_retries

retries - the number of test runs that were retries of other test runs.
run - the number of test runs that were not retries.

launch_metric Allure 3

One tag per each performance metric key, only if performanceMetrics is enabled.

Each value represents the average value of the metric in the run.

Prometheus metrics ​

The export/prometheusData.txt file contains aggregate test data in the text-based format for Prometheus. When imported, it creates the following metrics.

PrefixMetrics

launch_status_*

One metric per each possible test status:
launch_status_failed,
launch_status_broken,
launch_status_passed,
launch_status_skipped,
launch_status_unknown.

Each value represents the number of tests with the status.

launch_time_*

launch_time_duration - the time it took to run all tests.
launch_time_min_duration - the duration of the fastest test run.
launch_time_max_duration - the duration of the slowest test run.
launch_time_sum_duration - all durations, combined.
launch_time_start - the time when the first test started, as a timestamp in milliseconds.
launch_time_stop - the time when the last test finished, as a timestamp in milliseconds.

The values for launch_time_duration and launch_time_sum_duration may differ significantly if your test framework runs tests in parallel or spends significant time preparing for each test.

launch_problems_*

One metric per each non-empty category.

Each category's name is converted to lowercase, the spaces are replaced with underscores, and the prefix is added, for example: launch_problems_test_defects, launch_problems_product_defects.

Each value represents the number of tests in the category.

launch_retries_*

launch_retries_retries - the number of test runs that were retries of other test runs.
launch_retries_run - the number of test runs that were not retries.

launch_metric_* Allure 3

One metric per each performance metric key, only if performanceMetrics is enabled, for example: launch_metric_page_load.

Each value represents the average value of the metric in the run.

Category names in Allure Report 3 ​

The default categories have different names in Allure Report 2 and Allure Report 3, and so do their metrics:

  • Allure Report 2: launch_problems_product_defects and launch_problems_test_defects;
  • Allure Report 3: launch_problems_product_errors and launch_problems_test_errors.

If your graphs use the Allure Report 2 names, define categories with these names in the Allure Report 3 configuration:

javascript
import { defineConfig } from "allure";

export default defineConfig({
  categories: {
    rules: [
      { name: "Product defects", matchers: { statuses: ["failed"] } },
      { name: "Test defects", matchers: { statuses: ["broken"] } },
    ],
  },
  plugins: {
    awesome: {},
    metrics: {},
  },
});
json
{
  "categories": {
    "rules": [
      { "name": "Product defects", "matchers": { "statuses": ["failed"] } },
      { "name": "Test defects", "matchers": { "statuses": ["broken"] } }
    ]
  },
  "plugins": {
    "awesome": {},
    "metrics": {}
  }
}
yaml
categories:
  rules:
    - name: Product defects
      matchers:
        statuses: [failed]
    - name: Test defects
      matchers:
        statuses: [broken]
plugins:
  awesome: {}
  metrics: {}
Pager
Previous pageExport to CSV
Next pageGuides
Powered by

Subscribe to our newsletter

Get product news you actually need, no spam.

Subscribe
Allure TestOps
  • Overview
  • Why choose us
  • Cloud
  • Self-hosted
  • Success Stories
Company
  • Documentation
  • Blog
  • About us
  • Contact
  • Events
© 2026 Qameta Software Inc. All rights reserved.
A Markdown version of this page is available at /docs/export-metrics.md