Hello @mhenson,
Absolutely great question. Let me see if I understood correctly:
the most common practice is to charge-back based on resources usage, which idea is not very complicated: your budget on resources and maintenance can be split up between the tenants (e.e, departments) by percentages.
The application of this simple idea can be somewhat tricky, sometimes, but general idea is:
- If possible, you can create different application servers between your tenants, which already helps to reserve resources (disk or memory quotas, even CPU in some scenarios) for the tenants.
- If you cannot, at least your tenants to be charged should be united in defined groups.
- Then you can collect the usage of those resources. If you have quotas, they can use the limits or less of what within their boundaries, which will help to manage their expectations.
- The usage will be split, as said, in percentages and then you can, mathematically, define your charges.
Now, the question, is how to collect those resources: by monitoring your system.
And you can monitor at different levels:
- OS monitoring,
- with generic tools such as Nagios/SCOM/Zabbix,
- or with SAS tools such as the LASR monitoring or SAS Environment Manager.
- There are some other tools created for SAS environments, by 3rd parties.
On the last one, my favourite tool is the Enterprise Session Monitor (ESM) created by Boemska ( https://boemskats.com/esm/ ), which already includes in the latest versions a way to calculate those charge backs, for processes generated in your SAS Compute tier. Check out the demo video.
Edit 1: