IP Library Granted Patent US 12,645,556
Granted Patent B1
US 12,645,556 · App. 18/094,798 · Granted Jun 2, 2026

Aggregation and routing of metric time series data

Inventors: Steven Karis (Pacifica, CA); Rachel Kolavo (Boulder, CO); Nathan Moeller (San Jose, CA); Kevin Cheng (Seattle, WA); Ramakrishnan Hariharan Chandrasekharapuram (San Jose, CA); Archanan Padmasenan (San Jose, CA)
Assignee: Cisco Technology, Inc.
G06F11/3075G06F11/3082
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 12,645,556
App. No.
18/094,798
Filed
Jan 9, 2023
Granted
Jun 2, 2026
Kind
B1
Art Unit
2444
USPC
709/224
Abstract

Described herein are techniques for aggregating metric time series data upon ingestion, such as prior to intake, analysis, or processing by a data quantizer system. The disclosed techniques can transforming metric time series data into aggregated metric time series data, optionally with reduced complexity or dimensionality, while retaining various statistical information characteristic of the original source metric time series data. The aggregated metric time series data can be used in the same way as the original source metric time series data or other metric time series data, such as for processing or generating streaming analytics data or triggering events or notifications by a data quantizer system.

Claims (48)

1 . A computer-implemented method, comprising:

receiving a plurality of metric time series at a computing system;

identifying, using one or more filter criteria, a particular metric time series of the plurality of metric time series for aggregation, the particular metric time series including a plurality of dimensions;

performing, using one or more aggregation criteria, aggregation of data points of the particular metric time series to generate an aggregated metric time series, wherein the aggregated metric time series includes fewer dimensions than the plurality of dimensions included in the particular metric time series;

routing the particular metric time series to a data store;

routing the aggregated metric time series to a data quantizer system;

generating, by the data quantizer system, roll-up data points based on the aggregated metric time series, the roll-up data points including quantized values associated with a plurality of time intervals, wherein the aggregated metric time series includes, for each time interval of the plurality of time intervals and for each value of a plurality of values of a particular dimension included in the aggregated metric time series, an aggregated data point comprising a plurality of data values, and wherein the plurality of data values includes a first data value that is computed as a sum of differences between (i) metric values of data points included in the particular metric time series and associated with a value of the particular dimension and belonging to a time interval and (ii) metric values of data points included in the particular metric time series and associated with the value of the particular dimension and belonging to an immediately previous time interval; and

processing, by the computing system, the roll-up data points generated over the plurality of time intervals to determine an overall usage of a plurality of processor cores distributed in one or more datacenters, wherein each of the plurality of metric time series includes information related to processor usage in a data center of the one or more datacenters.

2 . The computer-implemented method of claim 1 , further comprising routing other metric time series from the plurality of metric time series that are not identified for aggregation to one or more of a data quantizer system, a data store, or a remote system.

3 . The computer-implemented method of claim 1 , wherein each metric time series in the plurality of metric time series includes one or more dimensions and/or one or more metadata values.

4 . The computer-implemented method of claim 1 , wherein each metric time series in the plurality of metric time series comprises a plurality of data points, each data point including a timestamp, one or more dimensions, and one or more values.

5 . The computer-implemented method of claim 1 , wherein the aggregated metric time series comprises a plurality of data points, each data point including a timestamp, one or more dimensions, and a plurality of values.

6 . The computer-implemented method of claim 1 , wherein the one or more filter criteria identify the particular dimension or metadata value and wherein identifying the particular metric time series comprises matching the particular dimension or metadata value to the particular metric time series.

7 . The computer-implemented method of claim 1 , further comprising obtaining the one or more filter criteria from a remote system or receiving input corresponding to the one or more filter criteria.

8 . The computer-implemented method of claim 1 , wherein the aggregation criteria specifies a number of data points to consolidate for each aggregated data point.

9 . The computer-implemented method of claim 1 , wherein the aggregation criteria specifies one or more dimensions included in the particular metric time series to retain for each aggregated data point or to drop for each aggregated data point.

10 . The computer-implemented method of claim 1 , wherein the aggregation criteria specifies a computation algorithm for aggregating values for each aggregated data point.

11 . The computer-implemented method of claim 1 , wherein each of multiple data points of the particular metric time series includes a corresponding value and wherein aggregating comprises creating aggregated data points using a plurality of the corresponding values from different data points of the multiple data points.

12 . The computer-implemented method of claim 1 , wherein data points of the particular metric time series include first dimension values for a first dimension, second dimension values for a second dimension, and a metric value, wherein aggregation includes generating, from a plurality of data points of the particular metric time series, an aggregated data point, wherein the aggregated data point includes a plurality of entries, each entry corresponding to a different first dimension value for the first dimension.

13 . The computer-implemented method of claim 12 , wherein the plurality of data values further includes:

a count of a number of data points including a particular dimension value,

a sum of metric values from data points including the particular dimension value,

a maximum of metric values from data points including the particular dimension value,

a minimum of metric values from data points including the particular dimension value, and

an average of metric values from data points including the particular dimension value.

14 . The computer-implemented method of claim 1 , further comprising obtaining the one or more aggregation criteria from a remote system or receiving input corresponding to the one or more aggregation criteria.

15 . The computer-implemented method of claim 1 , further comprising:

determining, based on one or more routing criteria, whether the particular metric time series is to be communicated to a remote system.

16 . The computer-implemented method of claim 15 , wherein the one or more routing criteria indicates that the aggregated metric time series is to be communicated to a remote system.

17 . The computer-implemented method of claim 15 , further comprising obtaining the one or more routing criteria from a remote system or receiving input corresponding to the one or more routing criteria.

18 . A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations comprising:

receiving a plurality of metric time series at a computing system;

identifying, using one or more filter criteria, a particular metric time series of the plurality of metric time series for aggregation, the particular metric time series including a plurality of dimensions;

performing, using one or more aggregation criteria, aggregation of data points of the particular metric time series to generate an aggregated metric time series, wherein the aggregated metric time series includes fewer dimensions than the plurality of dimensions included in the particular metric time series;

routing the particular metric time series to a data store;

routing the aggregated metric time series to a data quantizer system;

generating, by the data quantizer system, roll-up data points based on the aggregated metric time series, the roll-up data points including quantized values associated with a plurality of time intervals, wherein the aggregated metric time series includes, for each time interval of the plurality of time intervals and for each value of a plurality of values of a particular dimension included in the aggregated metric time series, an aggregated data point comprising a plurality of data values, and wherein the plurality of data values includes a first data value that is computed as a sum of differences between (i) metric values of data points included in the particular metric time series and associated with a value of the particular dimension and belonging to a time interval and (ii) metric values of data points included in the particular metric time series and associated with the value of the particular dimension and belonging to an immediately previous time interval; and

processing the roll-up data points generated over the plurality of time intervals to determine an overall usage of a plurality of processor cores distributed in one or more datacenters, wherein each of the plurality of metric time series includes information related to processor usage in a data center of the one or more datacenters.

19 . A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a plurality of metric time series at a computing system;

identifying, using one or more filter criteria, a particular metric time series of the plurality of metric time series for aggregation, the particular metric time series including a plurality of dimensions;

performing, using one or more aggregation criteria, aggregation of data points of the particular metric time series to generate an aggregated metric time series, wherein the aggregated metric time series includes fewer dimensions than the plurality of dimensions included in the particular metric time series;

routing the particular metric time series to a data store;

routing the aggregated metric time series to a data quantizer system; and

generating, by the data quantizer system, roll-up data points based on the aggregated metric time series, the roll-up data points including quantized values associated with a plurality of time intervals, wherein the aggregated metric time series includes, for each time interval of the plurality of time intervals and for each value of a plurality of values of a particular dimension included in the aggregated metric time series, an aggregated data point comprising a plurality of data values, and wherein the plurality of data values includes a first data value that is computed as a sum of differences between (i) metric values of data points included in the particular metric time series and associated with a value of the particular dimension and belonging to a time interval and (ii) metric values of data points included in the particular metric time series and associated with the value of the particular dimension and belonging to an immediately previous time interval; and

processing, by the computing system, the roll-up data points generated over the plurality of time intervals to determine an overall usage of a plurality of processor cores distributed in one or more datacenters, wherein each of the plurality of metric time series includes information related to processor usage in a data center of the one or more datacenters.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2026
From: CHANDRASEKHARAPURAM, RAMAKRISHNAN HARIHARAN; PADMASENAN, ARCHANAN
To: SPLUNK INC.
Reel/Frame 074540/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2023
From: KARIS, STEVEN; KOLAVO, RACHEL; MOELLER, NATHAN; CHENG, KEVIN
To: SPLUNK INC.
Reel/Frame 062317/0362 →
References Cited (32)
US 5063521A · Peterson et al. · 1991 [cited by applicant]
US 6941287B1 · Vaidyanathan et al. · 2005 [cited by applicant]
US 7937344B2 · Baum · 2011 [cited by examiner]
US 8112425B2 · Baum et al. · 2012 [cited by applicant]
US 8751529B2 · Zhang · 2014 [cited by examiner]
US 8788525B2 · Neels et al. · 2014 [cited by applicant]
US 9215240B2 · Merza et al. · 2015 [cited by applicant]
US 9286413B1 · Coates et al. · 2016 [cited by applicant]
US 10127258B2 · Lamas et al. · 2018 [cited by applicant]
US 10558543B2 · Harutyunyan · 2020 [cited by examiner]
US 10931743B1 · Chou · 2021 [cited by examiner]
US 11200130B2 · Tankersley · 2021 [cited by examiner]
US 12190086B1 · Hanebutte et al. · 2025 [cited by applicant]
US 12265459B1 · Ross et al. · 2025 [cited by applicant]
US 20120078975A1 · Chen et al. · 2012 [cited by applicant]
US 20160140208A1 · Dang et al. · 2016 [cited by applicant]
US 20170047973A1 · Wu et al. · 2017 [cited by applicant]
US 20180046567A1 · Liu et al. · 2018 [cited by applicant]
US 20190098106A1 · Mungel · 2019 [cited by examiner]
US 20200089590A1 · Togawa · 2020 [cited by examiner]
US 20210075456A1 · Orhan et al. · 2021 [cited by applicant]
US 20210243092A1 · Labonte · 2021 [cited by examiner]
US 20210350304A1 · Bhowmik · 2021 [cited by examiner]
US 20230418467A1 · Ezrielev et al. · 2023 [cited by applicant]
US 20240412620A1 · Andrzejewski et al. · 2024 [cited by applicant]
US 20250159045A1 · Sterbling et al. · 2025 [cited by applicant]
Splunk Enterprise 8.0.0 Overview, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Cloud 8.0.2004 User Manual, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Quick Reference Guide, updated 2019, available online at https://www.splunk.com/pdfs/solution-guides/splunk-quick-reference-guide.pdf, retrieved May 20, 2020. [cited by applicant]
Carraso, David, “Exploring Splunk,” published by CITO Research, New York, NY, Apr. 2012. [cited by applicant]
Bitincka, Ledion et al., “Optimizing Data Analysis with a Semi-structured Time Series Database,” self-published, first presented at “Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML)”… [cited by applicant]
U.S. Appl. No. 18/094,801, “Final Office Action”, May 8, 2025, 20 pages. [cited by applicant]