Statistics module (v1.8 or earlier)

Resources and tiers

Any resources can be administratively assigned to one tier. A tier is an Yoda introduced entity, not standard iRODS A tier can be considered a price level of a resource.

metadata on resource level:org_storage_tier = ‘tape’

If no tier is assigned to a resource yet, this is considered the ‘Standard’ tier by default.

Registering usage data

Once a month a cronjob registers storage data for each category, based upon each group in the category. Collection of storage amount is performed per group and per storage tier and stored as metadata on corresponding group. When collection fails the storage data of the previoues month is used as fallback.

All determined storage data is recorded on group level. Each group holds the following metadata with key: org_storage_data_month.

This is postfixed with the month number, like:

org_storage_data_month01
org_storage_data_month02
org_storage_data_month03
org_storage_data_month04
org_storage_data_month05
org_storage_data_month06
org_storage_data_month07
org_storage_data_month08
org_storage_data_month09
org_storage_data_month10
org_storage_data_month11
org_storage_data_month12

Thus creating a full year cyclic buffer.

Per entry, i.e. for a group every month, each metadata-entry holds category, tier and  storage information in a JSON format ['Categoryname', 'Tiername', '100']. The frontend steps into this cyclic buffer starting from current month backward. Per month the front end gets tiername and storage data in a total array divided in tiername, months and storage.

Metadata attribute: UUORGMETADATAPREFIX ++ 'storage_data_month' ++ *month;

Metadata value: *json_str = "[\"*category\", \"*tier\", \"*storageAmount\"]";

The corresponding category is registered on group level as well as a group could possibly change category. So for historic purposes it is required to know to what category a group belonged.

Twelve month registration

Per group one or more metadata attributes like this exist for a month.
This occurs for each month (org_storageDataMonth01, … , org_storageDataMonth12) thus setting up a cyclic buffer for registration with a maximum history 12 months history. After 12 months the previous values are overwritten automatically by the monthly cronjob.

Collecting data for reporting

To find all latest and historic data for a category metadata can be matched against ‘[\“’ ++ *cat ++ ‘\”%%’. This will bring up all metadata storage metadata for this category. Combined with a specific month this will bring up all required data to calculate the storage per tier for a specific category for a month.

Which month does registered data belong to?

Registration takes place on the first day of a month, the data collected is linked to that month. I.e. data collected on 1st of June is linked to the month of June. And therefore registered under org_storage_data_month06.