// SPDX-FileCopyrightText: 2017-2023 Philippe Proulx <pproulx@efficios.com>
//
// SPDX-License-Identifier: CC-BY-SA-4.0

= babeltrace2-sink.utils.counter(7)
:manpagetype: component class
:revdate: 1 September 2023


== NAME

babeltrace2-sink.utils.counter - Babeltrace 2: Message counter sink
component class


== DESCRIPTION

A Babeltrace~2 compcls:sink.utils.counter component prints to the
standard output the number of messages it consumes with a count for each
type.

----
            +--------------------+
            | sink.utils.counter |
            |                    +--> Statistics to the
Messages -->@ in                 |    standard output
            +--------------------+
----

include::common-see-babeltrace2-intro.txt[]

The output of the component looks like this:

----
        3842964 Event messages
              4 Stream beginning messages
              1 Stream end messages
             18 Packet beginning messages
             14 Packet end messages
            189 Discarded event messages
              0 Discarded packet messages
              3 Message iterator inactivity messages
        3843000 messages (TOTAL)
----

By default, a compcls:sink.utils.counter component prints a new block of
statistics every~1000 consumed messages, whatever their types. You can
use the param:step parameter to override this default period.

The component always prints a block of statistics when there's no more
messages to consume from its upstream message iterator and the last
block was different.

By default, a compcls:sink.utils.counter component prints the count of
messages for each type, even if this count is~0. You can make it hide
the zero counts with the param:hide-zero parameter.


== INITIALIZATION PARAMETERS

param:hide-zero='VAL' vtype:[optional boolean]::
    If 'VAL' is true, then don't print the statistics lines where the
    count is zero.
+
Default: false.

param:step='STEP' vtype:[optional unsigned integer]::
    Print a new block of statistics every 'STEP' consumed messages
    instead of~1000.
+
If 'STEP' is~0, then the component only prints statistics when there's
no more messages to consume.


== PORTS

----
+--------------------+
| sink.utils.counter |
|                    |
@ in                 |
+--------------------+
----


=== Input

`in`::
    Single input port.


include::common-footer.txt[]


== SEE ALSO

man:babeltrace2-intro(7),
man:babeltrace2-plugin-utils(7)
