iRODS Metrics in irods_demo
Terrell Russell, Ph.D.
Executive Director
iRODS Consortium
June 29 - July 2, 2026
iRODS User Group Meeting 2026
Barcelona, Spain
iRODS → Timeseries
Best practice:
sql_exporter → prometheus → grafana
Part of https://github.com/irods/irods_demo
December 2025
Demo: https://www.youtube.com/watch?v=IWKrd5b-57Q
Capturing Transfers In and Out
ICAT=> \d r_transfer_totals
Table "public.r_transfer_totals"
Column | Type | Collation | Nullable | Default
-----------+------------------------+-----------+----------+---------
user_id | bigint | | not null |
action | character varying(250) | | not null |
exbibytes | bigint | | not null |
bytes | bigint | | not null |
Indexes:
"unique_user_action" UNIQUE CONSTRAINT, btree (user_id, action)
ICAT=> select * from r_transfer_totals;
user_id | action | exbibytes | bytes
---------+--------+-----------+------------
10002 | out | 0 | 4294967296
10002 | in | 0 | 2147483888
(2 rows)
INSERT INTO R_TRANSFER_TOTALS (user_id, action, exbibytes, bytes)
VALUES (${USER_ID}, '${ACTION}', 0, ${BYTES})
ON CONFLICT (user_id, action) DO UPDATE SET
bytes = R_TRANSFER_TOTALS.bytes + EXCLUDED.bytes;iRODS Dashboarding
Next Steps