.. _glossary:

Glossary
========

.. glossary::

    Agenda
        An agenda specifies what is to be done during a Workload Automation
        run. This includes which workloads will be run, with what configuration
        and which augmentations will be enabled, etc. (For more information
        please see the :ref:`Agenda Reference <agenda-reference>`.)

    Alias
        An alias associated with a workload or a parameter. In case of
        parameters, this is simply an alternative name for a parameter; Usually
        these are employed to provide backward compatibility for renamed
        parameters, or in cases where a there are several commonly used terms,
        each equally valid, for something.

        In case of Workloads, aliases can also be merely alternatives to the
        workload name, however they can also alter the default values for the
        parameters the Workload is instantiated with. A common scenario is when
        a single workload can be run under several distinct configurations (e.g.
        has several alternative tests that might be run) that are configurable
        via a parameter. An alias may be added for each such configuration. In
        order to see the available aliases for a workload, one can use :ref:`show
        command <show-command>`\ .

        .. seealso:: :term:`Global Alias`

    Artifact
        An artifact is something that was been generated as part of the run
        for example a file containing output or meta data in the form of log
        files. WA supports multiple "kinds" of artifacts and will handle them
        accordingly, for more information please see the
        :ref:`Developer Reference <artifact>`.

    Augmentation
        Augmentations are plugins that augment the execution of
        workload jobs with additional functionality; usually, that takes the
        form of generating additional metrics and/or artifacts, such as traces
        or logs. For more information please see
        :ref:`augmentations <augmentations>`.

    Classifier
        An arbitrary key-value pair that may associated with a :term:`job`\ , a
        :term:`metric`\ , or an :term:`artifact`. The key must be a string. The
        value can be any simple scalar type (string, integer, boolean, etc).
        These have no pre-defined meaning but may be used to aid
        filtering/grouping of metrics and artifacts during output processing.

        .. seealso:: :ref:`classifiers`.

    Global Alias
        Typically, values for plugin parameters are specified name spaced under
        the plugin's name in the configuration. A global alias is an alias that
        may be specified at the top level in configuration.

        There two common reasons for this. First, several plugins might
        specify the same global alias for the same parameter, thus allowing all
        of them to be configured with one settings. Second, a plugin may not be
        exposed directly to the user (e.g. resource getters) so it makes more
        sense to treat its parameters as global configuration values.

        .. seealso:: :term:`Alias`

    Instrument
        A WA "Instrument" can be quite diverse in its functionality, but
        the majority of those available in are there to collect some kind of
        additional data (such as trace, energy readings etc.) from the device
        during workload execution. To see available instruments please use the
        :ref:`list command <list-command>` or see the
        :ref:`Plugin Reference <instruments>`.

    Job
        An single execution of a workload. A job is defined by an associated
        :term:`spec`. However, multiple jobs can share the same spec;
        E.g. Even if you only have 1 workload to run but wanted 5 iterations
        then 5 individual jobs will be generated to be run.

    Metric
        A single numeric measurement or score collected during job execution.

    Output Processor
        An "Output Processor" is what is used to process the output
        generated by a workload. They can simply store the results in a presentable
        format or use the information collected to generate additional metrics.
        To see available output processors please use the
        :ref:`list command <list-command>` or see the
        :ref:`Plugin Reference <output-processors>`.

    Run
        A single execution of `wa run` command. A run consists of one or more
        :term:`job`\ s, and results in a single output directory structure
        containing job results and metadata.

    Section
        A set of configurations for how jobs should be run. The
        settings in them take less precedence than workload-specific settings. For
        every section, all jobs will be run again, with the changes
        specified in the section's agenda entry. Sections
        are useful for several runs in which global settings change.

    Spec
        A specification of a workload. For example you can have a single
        workload specification that is then executed multiple times if you
        desire multiple iterations but the configuration for the workload will
        remain the same. In WA2 the term "iteration" used to refer to the same
        underlying idea as spec now does. It should be noted however, that this
        is no longer the case and an iteration is merely a configuration point
        in WA3. Spec is to blueprint as job is to product.

    WA
        Workload Automation. The full name of this framework.

    Workload
        A workload is the lowest level specification for tasks that need to be run
        on a target. A workload can have multiple iterations, and be run additional
        multiples of times dependent on the number of sections.
