Name

arbtt-stats — generate statistics from the arbtt data samples

Synopsis

arbtt-stats [OPTION...]

Description

arbtt-stats reads the samples that were recorded so far by arbtt-capture from the log file, filters them according to the users specifications and generates one or more reports from the data.

When run without any options, --total-time is assumed.

The order in which filters (--exclude, --only, --also-inactive and --filter) and reports are passed to the program is irrelevant: All filters given on the command line are active for all reports.

Options

-h, -?, --help
shows a short summary of the available options, and exists.
-V, --version
shows the version number, and exists.
--logfile FILE
logfile to use instead of ~/.arbtt/capture.log
--categorizefile
categorize file to use instead of ~/.arbtt/categorize.cfg

Filtering options

-x TAG, --exclude TAG
Ignore any data samples that have been assigned this tag or category. To distinguish tags and categories, the latter have to be entered followed by a colon. Can be given more than once.
-o TAG, --only TAG
Ignore any data samples that have not been assigned this tag. To distinguish tags and categories, the latter have to be entered followed by a colon. Can be given more than once.
--also-inactive
by default, arbtt-stats ignores any samples which have been assigned the tag inactive. This flag disables this behaviour.
-f CONDITION, --filter CONDITION
Only consider samples matching the given condition, which follows the same syntax as in categorize.cfg (Nonterminal Cond in Figure 1, “The formal grammar of categorize.cfg).

Report options

-m PERCENTAGE, --min-percentage PERCENTAGE

Ignore tags whose percentage is less than the value specified here. Default percentage: 1%.

--output-exclude TAG

Skip this tag or category when printing statistics. Only affects the reports --total-time and --category. To distinguish tags and categories, the latter have to be entered followed by a colon. Can be given more than once.

--output-only TAG

Prints statistics only for the specified tag or category. Only affects the reports --total-time and --category. To distinguish tags and categories, the latter have to be entered followed by a colon. Can be given more than once.

--output-format FORMAT

Specify the report output format, may be one of: text, csv (comma-separated values), tsv (TAB-separated values). Default format: text.

Reports

-i, --information

Various bits of information about the recorded data, such as total time recorded, number of records etc. In this report, time recorded is the sum of all samples, including inactive and those that are disabled by the filter, while time selected is the sum of the samples that are matched by the given filters.

-t, --total-time

For all tags, print the part of the selected time with this tag applied to, both as an absolute value and a percentage of the selected time.

-c CATEGORY, --category CATEGORY

For the given category, give the textual equivalent of a pie chart: For each possible value of the category, including one for no tag of this category present, give the absolute time and fraction. Entries which are not displayed because of the option --min-percentage are aggregated.

--each-category

This is just a shortcut for a series of --category options, one for each category found in the data.

--intervals [TAG|CATEGORY:]

This report lists all periods of consecutive time intervals where the given tag has been applied to, or where the given category has the same value.

To distinguish tags and categories, the latter have to be entered followed by a colon.

This report will give wrong results if an activity has been carried out at the end of a session and right at the beginning, as the intermediate time is thought to be part of the interval. Inactive times while arbtt-capture is running will separate the results as expected.

--for-each PERIOD

This is not a report of its own, but causes the selected report to be executed for each of the given PERIOD (which can be day, month or year) where there exist selected samples. All the reports will then be printed one after another or, in the case of CSV output, with an additional column.

Note that if this option is enabled, samples that are filtered out are completely ignored (to avoid empty reports for periods with only filtered samples). Therefore, the --information report will print the numbers for the samples selected also for the totals.

Examples

Some useful examples of what you can do with arbtt-stats are provided here:

# Only consider the time when I was programming in Haskell
arbtt-stats -o Editing-Haskell

# Tell me what evolution folders I spend my time in when I actually do
# work with e-Mail
arbtt-stats -o Program:evolution -c Evo-Folder

# Generate statistics about the last hour
arbtt-stats -f '$sampleage < 1:00'

Files

~/.arbtt/capture.log

binary file, storing the arbtt data samples

~/.arbtt/categorize.cfg

specification of the arbtt categorizer syntax. A detailed description is given in the section called “Configuring the arbtt categorizer (arbtt-stats)”

See also

See the arbtt manual for more information and the arbtt hackage page for newer versions of arbtt.