IP Library Granted Patent US 10,581,954
Granted Patent B2
US 10,581,954 · App. 15/625,548 · Granted Mar 3, 2020

Metric collection and aggregation for distributed software services

Inventors: Tushar Narayan (San Mateo, CA); Andrew Colombi (San Francisco, CA); Robert Fink (San Francisco, CA); Alexander Ince-Cushman (San Francisco, CA)
Assignee: Palantir Technologies Inc.
H04L67/10G06F11/3466G06F16/9566G06F11/30G06F11/3082G06F11/3409G06F11/3476G06F11/3495G06F11/3636H04L43/08
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 10,581,954
App. No.
15/625,548
Granted
Mar 3, 2020
Kind
B2
Abstract

Various embodiments disclosed herein relate to collection and aggregation of metrics for software services operating across a plurality of computing nodes.

Claims (32)

1. A method, comprising:

requesting, from a software service deployment manager on a first computing node, by a hardware processor, identification of metric-providing software service instances operating on a plurality of computing nodes not including the first computing node, each particular metric-providing software service instance including a metric provider that produces pre-calculated metric data for the particular metric-providing software service instance, wherein the particular metric-providing software service instance registers with the software service deployment manager a metric-providing capability of the particular metric-providing software service instance, the pre-calculated metric data includes a metric calculated for the particular metric-providing software service instance, and the metric is calculated at a particular computing node operating the particular metric-providing software service instance;

responsive to the requesting, receiving, by the hardware processor, response data from the software service deployment manager on the first computing node, wherein the response data includes identification of the metric-providing software service instances;

collecting, by the hardware processor, pre-calculated metric data from at least one of the metric-providing software service instances identified by the response data; and

aggregating, by the hardware processor, the collected pre-calculated metric data into a metric packet, wherein the aggregating is based on software service identifiers, timestamps, metric names, and user identifiers included in the pre-calculated metric data, wherein the collected pre-calculated metric data comprises a first data portion associated with a particular software service identifier and a second data portion associated with the particular software service identifier, wherein the first data portion aggregates metrics generated by first software service instances on at least two different computing nodes while servicing requests for a first user identifier, wherein the second data portion aggregates metrics generated by second software service instances on at least two different computing nodes while servicing requests for a second user identifier, wherein the first software services instances and the second software services instances are associated with the particular software service identifier, wherein the first data portion comprises at least one metric relating to a count of data sets managed by the first software service instances for servicing requests for the first user identifier, and wherein the count of data sets managed by the first software service instances is calculated by counting the first user identifier only once for the first software service instances across two or more different computing nodes.

2. The method of claim 1 , wherein the response data is received over a communications network from a software service deployment manager, and the software service deployment manager monitors for metric-providing software service instances operating on a computing node.

3. The method of claim 1 , wherein the aggregating is based on software service deployment identifiers, each of which identifies an exclusive group of software service identifiers.

4. The method of claim 1 , wherein the response data comprises a universal resource locator (URL) for collecting pre-calculated metric data from the at least one of the metric-providing software service instances.

5. The method of claim 1 , wherein the metric comprises software version information for the particular metric-providing software service instance.

6. The method of claim 1 , wherein the metric comprises unique users over a time period.

7. The method of claim 1 , wherein the metric comprises metrics calculated according to at least one of user identifiers, time, and date.

8. The method of claim 1 , comprising storing the metric packet to a database that services software metric queries.

9. The method of claim 1 , wherein the method is being performed by a software service instance operating on a computing node separate from the plurality of computing nodes.

10. A system comprising:

a hardware processor of a machine; and

a memory storing instructions that, when executed by the hardware processor, cause the machine to perform operations comprising:

requesting, from a software service deployment manager on a first computing node, identification of metric-providing software service instances operating on a plurality of computing nodes not including the first computing node, each particular metric-providing software service instance including a metric provider that produces pre-calculated metric data for the particular metric-providing software service instance, wherein the particular metric-providing software service instance registers with the software service deployment manager a metric-providing capability of the particular metric-providing software service instance, the pre-calculated metric data includes a metric calculated for the particular metric-providing software service instance, and the metric is calculated at a particular computing node operating the particular metric-providing software service instance;

responsive to the requesting, receiving response data from the software service deployment manager on the first computing node, wherein the response data includes identification of the metric-providing software service instances;

collecting, from one of the plurality of computing nodes, pre-calculated metric data for at least one of the metric-providing software service instances identified by the response data; and

aggregating the collected pre-calculated metric data into a metric packet, wherein the aggregating is based on software service identifiers, timestamps, metric names, and user identifiers included in the pre-calculated metric data, wherein the collected pre-calculated metric data comprises a first data portion associated with a particular software service identifier and a second data portion associated with the particular software service identifier, wherein the first data portion aggregates metrics generated by first software service instances on at least two different computing nodes while servicing requests for a first user identifier, wherein the second data portion aggregates metrics generated by second software service instances on at least two different computing nodes while servicing requests for a second user identifier, wherein the first software services instances and the second software services instances are associated with the particular software service identifier, wherein the first data portion comprises at least one metric relating to a count of data sets managed by the first software service instances for servicing requests for the first user identifier, and wherein the count of data sets managed by the first software service instances is calculated by counting the first user identifier only once for the first software service instances across two or more different computing nodes.

11. The system of claim 10 , wherein the response data is received over a communications network from a software service deployment manager, and the software service deployment manager monitors for metric-providing software service instances operating on a computing node.

12. The system of claim 10 , wherein the aggregating is based on software service deployment identifiers, each of which identifies an exclusive group of software service identifiers.

13. The system of claim 10 , wherein the response data comprises a universal resource locator (URL) for collecting pre-calculated metric data from the at least one of the metric-providing software service instances.

14. The system of claim 10 , wherein the metric comprises software version information for the particular metric-providing software service instance.

15. The system of claim 10 , wherein the metric comprises unique users over a time period.

16. The system of claim 10 , wherein the metric comprises metrics calculated according to at least one of user identifiers, time, and date.

17. The system of claim 10 , comprising storing the metric packet to a database that services software metric queries.

18. A machine-readable storage device embodying instructions that, when executed by at least one hardware processor of a machine, cause the machine to perform operations comprising:

requesting, from a software service deployment manager on a first computing node, identification of metric-providing software service instances operating on a plurality of computing nodes not including the first computing node, each particular metric-providing software service instance including a metric provider that produces pre-calculated metric data for the particular metric-providing software service instance, wherein the particular metric-providing software service instance registers with the software service deployment manager a metric-providing capability of the particular metric-providing software service instance, the pre-calculated metric data includes a metric calculated for the particular metric-providing software service instance, and the metric is calculated at a particular computing node operating the particular metric-providing software service instance;

responsive to the requesting, receiving response data from the software service deployment manager on the first computing node, wherein the response data includes identification of the metric-providing software service instances;

collecting, from one of the plurality of computing nodes, pre-calculated metric data for at least one of the metric-providing software service instances identified by the response data; and

aggregating the collected pre-calculated metric data into a metric packet, wherein the aggregating is based on software service identifiers, timestamps, metric names, and user identifiers included in the pre-calculated metric data, wherein the collected pre-calculated metric data comprises a first data portion associated with a particular software service identifier and a second data portion associated with the particular software service identifier, wherein the first data portion aggregates metrics generated by first software service instances on at least two different computing nodes while servicing requests for a first user identifier, wherein the second data portion aggregates metrics generated by second software service instances on at least two different computing nodes while servicing requests for a second user identifier, wherein the first software services instances and the second software services instances are associated with the particular software service identifier, wherein the first data portion comprises at least one metric relating to a count of data sets managed by the first software service instances for servicing requests for the first user identifier, and wherein the count of data sets managed by the first software service instances is calculated by counting the first user identifier only once for the first software service instances across two or more different computing nodes.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2017
From: NARAYAN, TUSHAR; COLOMBI, ANDREW; FINK, ROBERT; INCE-CUSHMAN, ALEXANDER
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 043674/0096 →