Jump to content

Coin glossary for Grafana users: Difference between revisions

From Qt Wiki
mNo edit summary
workitems durations
Line 14: Line 14:
See related dashboards:  
See related dashboards:  


[https://testresults.qt.io/grafana/d/d55b6230-5ceb-4962-acc2-83810e2be68c/things-gone-wrong-in-last-healthcheck Things Gone Wrong in last HealthCheck]
[https://testresults.qt.io/grafana/d/d55b6230-5ceb-4962-acc2-83810e2be68c/things-gone-wrong-in-last-healthcheck Things Gone Wrong in last HealthCheck dashboard]


For most flaky test statistics, only test results from integrations tasks are typically considered.
For most flaky test statistics, only test results from integrations tasks are typically considered.
Line 37: Line 37:
* '''Build'''
* '''Build'''
* '''Test'''
* '''Test'''
'''Workitem States'''
'''Workitem States'''
Each workitem has a '''state''' that describes its current status or final outcome. Possible states include:[[File:Test workitem state.png|thumb|COIN web interface displaying qt/qtdeclarative workitem states: Done, Error and Cancelled|600x600px]]
Each workitem has a '''state''' that describes its current status or final outcome. Possible states include:[[File:Test workitem state.png|thumb|COIN web interface displaying qt/qtdeclarative workitem states: Done, Error and Cancelled|600x600px]]
Line 51: Line 48:
* '''Timeout'''
* '''Timeout'''
* '''Insignificant''' – does not affect the overall task result
* '''Insignificant''' – does not affect the overall task result
Some platforms in COIN are marked as '''insignificant''', meaning build or test workitmes do not return fail and have no impact on result of  integrations containing those workitems.
Some platforms in COIN are marked as '''insignificant''', meaning build or test workitmes do not return fail and have no impact on result of  integrations containing those workitems.


Line 61: Line 55:


Workitems also have their own unique identifiers (workitem ids), which are used in Grafana dashboards to construct URLs linking to the corresponding workitem logs. Note that cached workitems can be shared among multiple integrations to optimize performance.   
Workitems also have their own unique identifiers (workitem ids), which are used in Grafana dashboards to construct URLs linking to the corresponding workitem logs. Note that cached workitems can be shared among multiple integrations to optimize performance.   
Additionally, task and workitem duration data is available. An example dashboard can be found at: 
[https://testresults.qt.io/grafana/d/7d7d6966-13e9-46a1-8ace-74055832c08a/coin-workitems-duration-and-failure-rate Coin - Workitems duration and failure rate dashboard] 


'''Build platforms'''  
'''Build platforms'''  

Revision as of 15:42, 23 January 2026

This article explains the glossary related to COIN, the Qt Company Continuous Integration system, from a Grafana user’s perspective. It provides a basic understanding of COIN terminology that is helpful for correctly interpreting metrics, dashboards, and trends. The page presents a simplified view of COIN concepts as they appear in Grafana and intentionally omits internal implementation details. For deeper technical explanations, see the references listed in Further reading.

A task represents a single CI job scheduled either by a user or by agents. Every task has a specific type, such as:

COIN web interface displaying different task types: Integration, Status check and Early warning
  • Integration
  • Early warning
  • Status check
  • Nightly and Healthchecks

Task types are labeled in the COIN web interface, they have distinct icons, and the same categorization (for example, Integration vs. Status check) also appears in different tables across Grafana dashboards. Status checks are jobs scheduled by users directly on coin web, Early warning are pre-checks scheduled from Gerrit. Integrations are tasks in which actual qt code is attempted to be integrated. HealthCheck are special tasks run every night, it builds and tests the latest qt5.git and all submodules on their last submodule-updated SHA-1s.

See related dashboards:

Things Gone Wrong in last HealthCheck dashboard

For most flaky test statistics, only test results from integrations tasks are typically considered.

Each task has a unique task id, which serves as its identifier. This id can be used to construct a URL that shows the status and results of a COIN task, following the pattern:

Grafana table panel displaying task URLs

https://testresults.qt.io/coin/integration/qt/{module_name}/tasks/{task_id}

for example:

https://testresults.qt.io/coin/integration/qt/qt5/tasks/nightly1767303902

Here, qt5 is the module_name and nightly1767303902 is the task_id.

Tasks URLs can be found in panels providing detailed information about test runs (see picture).

COIN web interface displaying workitem types: Provisioning, Build and Test

Workitems

A task can contain one or more subtasks called workitems.

Workitems represent a set of jobs and are roughly categorized into three types:

  • Provision
  • Build
  • Test

Workitem States

Each workitem has a state that describes its current status or final outcome. Possible states include:

COIN web interface displaying qt/qtdeclarative workitem states: Done, Error and Cancelled
  • Done – completed successfully
  • Running – currently in progress
  • Cancelled – manually stopped before completion
  • Waiting for hardware
  • Failed – encountered some sort of execution error
  • Error – any failure outside of the VM running instructions
  • Timeout
  • Insignificant – does not affect the overall task result

Some platforms in COIN are marked as insignificant, meaning build or test workitmes do not return fail and have no impact on result of integrations containing those workitems.

Insignificant = relates to build and test workitems in case of failure - the state is “Insignificant” not “Failed” and they do not stop integration,

InsignificantTests = relates only to test workitems. (test workitem will have status ‘Insignificant’ in case of failure).

Workitems also have their own unique identifiers (workitem ids), which are used in Grafana dashboards to construct URLs linking to the corresponding workitem logs. Note that cached workitems can be shared among multiple integrations to optimize performance.

Additionally, task and workitem duration data is available. An example dashboard can be found at:

Coin - Workitems duration and failure rate dashboard

Build platforms

COIN web interface displaying different config ids for qt/qtbase test workitem: rhel-9.6, sles-15_sp6-minimal-static, documentation-warnings and other

Qt is a multi-module, cross-platform library. Qt modules are often—but not always—built on a host platform and then executed and tested on a target platform. In most cases, a platform is defined by a combination of: operating system and version (e.g. macOS 12, Ubuntu 20.04), processor architecture (e.g. x86, x86_64, ARM64) and compiler (e.g. Clang, GCC, MSVC). In Grafana, this information is exposed through fields such as host_os_version, target_os_version, host_arch, target_arch, host_compiler, and target_compiler. Some Qt builds also run on virtual or embedded platforms, such as VxWorks.

COIN tracks platform details in even greater detail using so called configuration ids or configs. These identifiers describe in more detail concrete build and test environments, for example: ubuntu-22.04-developer-build, ubuntu-22.04-developer-build-x11-tests, ubuntu-24.04-arm64-developer-build-wayland-tests, ubuntu-24.04-arm64-developer-build and many many others.

Grafana panels showing config statistics grouped per results for all funtions in tst_printing test case.

Platform or configuration information is widely used in Grafana dashboards, enabling users to identify the platforms where a test is failing or to view statistics on platform stability.

Platforms are defined in coin/platform_configurations in product (module) repos for example:https://code.qt.io/cgit/qt/qt5.git/tree/coin/platform_configs/cmake_platforms.yaml

Other elements such as configure arguments, features (coin_features), or environment variables can also be displayed in Grafana.

Note that while the Qt test results Grafana dashboards are public, the underlying database and dashboard editing permissions are restricted to Qt Company internal use.





Test workitems contain unit tests results.

blacklisted, skipped, flaky, crashed, failed

informaiton about data tas









Further reading.

https://testresults.qt.io/coin/coininfo

https://testresults.qt.io/coin/doc/

Early Warning System

Qt test system

https://doc.qt.io/qt-6/qttest-index.html

https://doc.qt.io/qt-6/cross-compiling-qt.html