IP Library › Granted Patent US 9,430,354
Granted Patent B2
US 9,430,354 · App. 14/015,463 · Granted Aug 30, 2016

Aggregation of metrics for tracking electronic computing resources based on user class hierarchy

Inventor: Michael Renkema (North Shore, NZ)
Assignee: Citrix Systems, Inc.
G06F11/3476G06F11/3082G06F11/3409H04L43/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,430,354
App. No.
14/015,463
Granted
Aug 30, 2016
Kind
B2
Abstract

An improved technique involves collecting data from a hosting environment that provides access to electronic computing resources and computing aggregated metrics from the data for a particular level of a user class hierarchy by aggregating metric values collected for subordinate levels of the user class hierarchy. Along these lines, a tracking server, upon receiving resource usage data, arranges the data in entries having values of metrics that describe some attribute related to resource usage and pertaining to a user class hierarchy. For a given level of the user class hierarchy, the tracking server performs an aggregation operation (e.g., a summation) of metric values over entries pertaining to subordinate levels of the user class hierarchy. The tracking server stores the result of the aggregation operation in an aggregation table for future report generation.

Claims (92)

1. In an electronic environment that makes electronic computing resources available to users, a method of tracking usage of the electronic computing resources by the users, the method comprising:

receiving data indicative of usage of the electronic computing resources by the users;

storing the received data in a fact table, the fact table including multiple entries and multiple fields, the fields including a set of metric fields, each entry pertaining to a level of user class of a user class hierarchy and including a metric value for at least one of the metric fields of the table;

creating a hierarchy table including multiple entries, a parent identifier field, and a child identifier field, each of the multiple entries of the hierarchy table associating a respective pair of entries of the fact table and including a parent value for the parent identifier field and a child value for the child identifier field, the parent value of the parent identifier field identifying a first entry of the fact table pertaining to a first user class of the user class hierarchy, the child value of the child identifier field identifying a second entry in the fact table pertaining to a second user class of the user class hierarchy, the second user class being subordinate to the first user class;

for a first set of the multiple entries in the fact table, performing an aggregation operation that aggregates metric values stored in a second set of the multiple entries in the fact table for at least one metric field of the set of metric fields to generate a set of aggregated metric values,

wherein the first set of the multiple entries pertains to a particular level of the user class hierarchy and the second set of the multiple entries includes entries pertaining to a set of levels of the user class hierarchy subordinate to the particular level of the user class hierarchy, wherein performing the aggregation operation includes:

for each of the first set of the multiple entries in the fact table, locating entries of the hierarchy table having a parent value identifying the respective entry of the fact table, and

obtaining the values of the metric fields in the entries of the table identified by the values of the child identifier field.

2. A method as in claim 1 ,

wherein the fact table further includes a primary key, each entry of the fact table including a value of the primary key, the value of the primary key of that entry being unique to that entry;

wherein locating the entry of the hierarchy table having a value of the parent identifier field identifying that entry of the fact table includes:

performing a lookup operation on the parent identifier field by the value of the primary key of that entry of the fact table.

3. A method as in claim 1 ,

wherein the fact table further includes a set of dimension fields, each entry of the fact table further including a dimension value for at least one of the dimension fields of the fact table;

wherein storing the received data in the table includes:

arranging each of the set of dimension fields in a column of the fact table.

4. A method as in claim 3 ,

wherein the set of metric fields stores a set of generic metric fields, each of the set of generic metric fields being presented to all entries of the fact table, independent of the level of the user class hierarchy to which an entry pertains;

wherein each of a set of user level-specific metric fields are stored in a respective level-specific table distinct from the fact table, each of the set of level-specific fields being unique to a specific level of the user class hierarchy to which an entry pertains; and

wherein performing the aggregation operation includes:

aggregating values for generic metric fields of the set of generic metric fields of entries of the fact table to generate a respective set of aggregated generic metrics, the entries pertaining to all levels of the set of levels of the user class hierarchy subordinate to the particular level of the user class hierarchy, and

aggregating values for level-specific metric fields of the set of level-specific metric fields of entries of the respective level-specific metric table to generate a respective set of aggregated level-specific metrics, the entries pertaining to all levels of the set of levels of the user class hierarchy subordinate to the particular level of the user class hierarchy.

5. A method as in claim 4 ,

wherein aggregating the values for the generic metric fields includes:

performing a selection operation on a generic metric field, the selection operation selecting the generic metric field as the metric field over which aggregation is to be carried out, and

performing a grouping operation on the dimension fields of the set of dimension fields of the table, the grouping operation causing the aggregation operation to be carried out over at least one of the dimension fields of the fact table; and

wherein aggregating the values for the level-specific metric fields includes:

performing a selection operation on a level-specific metric field, the selection operation selecting the generic metric field as the metric field over which aggregation is to be carried out, and

performing a grouping operation on the dimension fields of the set of dimension fields of the table, the grouping operation causing the aggregation operation to be carried out over at least one of the dimension fields of the fact table.

6. A method as in claim 5 , further comprising:

for each level of the set of levels of the user class hierarchy, inputting each of the aggregated generic metrics and each of the aggregated level-specific metrics into an entry of an aggregation table; and

generating a report of usage of electronic computing resources based on the entries of the aggregation table for a level of user class in the user class hierarchy.

7. A method as in claim 1 ,

wherein values for a metric field of the set of metric fields include a measured quantity of an electronic computing resource; and

wherein performing the aggregation operation includes:

adding the values for the metric field of multiple entries of the set of entries to generate, as the respective aggregated metric, a sum over the values.

8. A method as in claim 7 ,

wherein values for a metric field of the set of metric fields include a Boolean value indicative of a state of a service pertaining to an electronic computing resource; and

wherein performing the aggregation operation includes:

adding the values for the metric field of multiple entries of the set of entries to generate, as the respective aggregated metric, a sum over the values.

9. In an electronic environment that makes electronic computing resources available to users, an apparatus constructed and arranged to track usage of the electronic computing resources by the users, the apparatus comprising:

a network interface;

memory; and

a controller including controlling circuitry coupled to the memory, the controlling circuitry being constructed and arranged to:

receive, over the network interface, data indicative of usage of the electronic computing resources by the users;

store the received data in a fact table, the fact table including multiple entries and multiple fields, the fields including a set of metric fields, each entry pertaining to a level of user class of a user class hierarchy and including a metric value for at least one of the metric fields of the fact table;

create a hierarchy table including multiple entries, a parent identifier field, and a child identifier field, each of the multiple entries of the hierarchy table associating a respective pair of entries of the fact table and including a parent value for the parent identifier field and a child value for the child identifier field, the parent value of the parent identifier field identifying a first entry of the fact table pertaining to a first user class of the user class hierarchy, the child value of the child identifier field identifying a second entry in the fact table pertaining to a second user class of the user class hierarchy, the second user class being subordinate to the first user class:

for a first set of the multiple entries in the table, perform an aggregation operation that aggregates metric values stored in a second set of the multiple entries in the fact table for at least one metric field of the set of metric fields to generate a set of aggregated metric values,

wherein the first set of the multiple entries pertains to a particular level of the user class hierarchy and the second set of the multiple entries includes entries pertaining to a set of levels of the user class hierarchy subordinate to the particular level of the user class hierarchy; and

wherein the controlling circuitry constructed and arranged to perform the aggregation operation is further constructed and arranged to:

for each of the first set of the multiple entries in the fact table, locate entries of the hierarchy table having a parent value identifying the respective entry of the fact table, and

obtain the values of the metric fields in the entries of the table identified by the values of the child identifier field.

10. An apparatus as in claim 9 ,

wherein the fact table further includes a primary key, each entry of the fact table including a value of the primary key, the value of the primary key of that entry being unique to that entry; and

wherein the controlling circuitry constructed and arranged to locate the entry of the hierarchy table having a value of the parent identifier field identifying that entry of the fact table is further constructed and arranged to:

perform a lookup operation on the parent identifier field by the value of the primary key of that entry of the table.

11. An apparatus as in claim 9 ,

wherein the fact table further includes a set of dimension fields, each entry of the fact table further including a dimension value for at least one of the dimension fields of the fact table;

wherein the controlling circuitry constructed and arranged to store the received data in the table is further constructed and arranged to:

arrange each of the set of dimension fields in a column of the fact table.

12. An apparatus as in claim 11 ,

wherein the set of metric fields stores a set of generic metric fields, each of the set of generic metric fields being presented to all entries of the fact table, independent of the level of the user class hierarchy to which an entry pertains;

wherein each of a set of user level-specific metric fields are stored in a respective level-specific table distinct from the fact table, each of the set of level-specific fields being unique to a specific level of the user class hierarchy to which an entry pertains; and

wherein the controlling circuitry constructed and arranged to perform the aggregation operation is further constructed and arranged to:

aggregate values for generic metric fields of the set of generic metric fields of entries of the fact table to generate a respective set of aggregated generic metrics, the entries pertaining to all levels of the set of levels of the user class hierarchy subordinate to the particular level of the user class hierarchy, and

aggregate values for level-specific metric fields of the set of level-specific metric fields of entries of the respective level-specific metric table to generate a respective set of aggregated level-specific metrics, the entries pertaining to all levels of the set of levels of the user class hierarchy subordinate to the particular level of the user class hierarchy.

13. An apparatus as in claim 12 ,

wherein the controlling circuitry constructed and arranged to aggregate the values for the generic metric fields is further constructed and arranged to:

perform a selection operation on a generic metric field, the selection operation selecting the generic metric field as the metric field over which aggregation is to be carried out, and

perform a grouping operation on the dimension fields of the set of dimension fields of the table, the grouping operation causing the aggregation operation to be carried out over at least one of the dimension fields of the fact table; and

wherein aggregating the values for the level-specific metric fields includes:

perform a selection operation on a level-specific metric field, the selection operation selecting the generic metric field as the metric field over which aggregation is to be carried out, and

perform a grouping operation on the dimension fields of the set of dimension fields of the table, the grouping operation causing the aggregation operation to be carried out over at least one of the dimension fields of the fact table.

14. An apparatus as in claim 13 , wherein the controlling circuitry is further constructed and arranged to:

for each level of the set of levels of the user class hierarchy, input each of the aggregated generic metrics and each of the aggregated level-specific metrics into an entry of an aggregation table; and

generate a report of usage of electronic computing resources based on the entries of the aggregation table for a level of user class in the user class hierarchy.

15. An apparatus as in claim 9 ,

wherein values for a metric field of the set of metric fields include a measured quantity of an electronic computing resource; and

wherein the controlling circuitry constructed and arranged to perform the aggregation operation is further constructed and arranged to:

add the values for the metric field of multiple entries of the set of entries to generate, as the respective aggregated metric, a sum over the values.

16. An apparatus as in claim 15 ,

wherein values for a metric field of the set of metric fields include a Boolean value indicative of a state of a service pertaining to an electronic computing resource; and

wherein the controlling circuitry constructed and arranged to perform the aggregation operation is further constructed and arranged to:

add the values for the metric field of multiple entries of the set of entries to generate, as the respective aggregated metric, a sum over the values.

17. In an electronic environment that makes electronic computing resources available to users, a computer program product having a non-transitory, computer-readable storage medium which stores instructions which, when executed by a computer, cause the computer to perform a method of tracking usage of the electronic computing resources by the tenants, the method comprising:

receiving data indicative of usage of the electronic computing resources by the users;

storing the received data in a fact table, the fact table including multiple entries and multiple fields, the fields including a set of metric fields, each entry pertaining to a level of user class of a user class hierarchy and including a metric value for at least one of the metric fields of the fact table;

creating a hierarchy table including multiple entries, a parent identifier field, and a child identifier field, each of the multiple entries of the hierarchy table associating a respective pair of entries of the fact table and including a parent value for the parent identifier field and a child value for the child identifier field, the parent value of the parent identifier field identifying a first entry of the fact table pertaining to a first user class of the user class hierarchy, the child value of the child identifier field identifying a second entry in the fact table pertaining to a second user class of the user class hierarchy, the second user class being subordinate to the first user class; and

for a first set of the multiple entries in the fact table, performing an aggregation operation that aggregates metric values stored in a second set of the multiple entries in the fact table for at least one metric field of the set of metric fields to generate a set of aggregated metric values,

wherein the first set of the multiple entries pertains to a particular level of the user class hierarchy and the second set of the multiple entries includes entries pertaining to a set of levels of the user class hierarchy subordinate to the particular level of the user class hierarchy, wherein performing the aggregation operation includes:

for each of the first set of the multiple entries in the fact table, locating entries of the hierarchy table having a parent value identifying the respective entry of the fact table, and

obtaining the values of the metric fields in the entries of the table identified by the values of the child identifier field.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2013
From: RENKEMA, MICHAEL
To: CITRIX SYSTEMS, INC.
Reel/Frame 031413/0309 →
Continuity (1)
Related Publication 20150067142A1 · Mar 5, 2015