IP Library Granted Patent US 11,765,014
Granted Patent B2
US 11,765,014 · App. 17/657,383 · Granted Sep 19, 2023

Intent-based distributed alarm service

Inventors: Tarun Banka (Milpitas, CA); Aditi Ghotikar (Sunnyvale, CA); Gauresh Dilip Vanjare (Santa Clara, CA); Harshit Naresh Chitalia (Mountain View, CA); Rajenkumar Patel (Sunnyvale, CA); Yixiao Wei (Mountain View, CA)
Assignee: Juniper Networks, Inc.
H04L41/0604H04L41/06H04L41/0681H04L41/16
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 11,765,014
App. No.
17/657,383
Granted
Sep 19, 2023
Kind
B2
Abstract

An alarm service can receive an alarm rule as an “intent” that defines a rule in a high level “natural language.” An alarm rule compiler can receive the intent and translate the high level intent into one or more lower level rules that can be programmatically processed by multiple alarm rule execution engines. Devices in a network system can be associated with alarm rule execution engines in a distributed manner. For example, devices in a network can be associated with different instances of an alarm rule execution engine, thus distributing the resource usage for obtaining telemetry data and processing alarms with respect to the devices in a network across multiple alarm rule execution engines.

Claims (50)

1. A method comprising:

allocating, by one or more processors, each device of a plurality of devices to a corresponding instance of a plurality of instances of an alarm rule execution engine;

obtaining, by one or more processors, data representing an alarm intent;

translating, by the one or more processors, the data representing the alarm intent into a rule, the rule specifying alarm criteria for an alarm;

determining, by the one or more processors, a set of one or more devices of the plurality of devices that are specified by the rule,

for each device in the set of one or more devices, assigning, by the one or more processors, the rule to the instance of the plurality of instances of the alarm rule execution engine corresponding to the device, wherein the instance of the alarm rule execution engine is configured to apply the rule to telemetry data received from the device;

in response to determining, by the instance of the plurality of instances of the alarm rule execution engine corresponding to the device, that the telemetry data matches the alarm criteria for the rule, outputting an indication of the alarm corresponding to the rule;

registering the set of one or more devices specified by the rule with a telemetry service, wherein the telemetry service configures the set of one or more devices to provide telemetry data in response to the registering; and

for at least one device in the set of one or more devices, subscribing, by the instance of the plurality of instances of the alarm rule execution engine corresponding to the at least one device, to the telemetry service to obtain the telemetry data for the at least one device.

2. The method of claim 1 , wherein translating the data representing the alarm intent comprises determining that the set of one or more devices are to be associated with the rule and generating the rule to specify the set of one or more devices.

3. The method of claim 1 , wherein translating the data representing the alarm intent comprises:

in response to determining that the alarm intent is a combination of a first alarm intent and a second alarm intent, generating the rule as a combination of one or more first rules translated from the first alarm intent and one or more second rules translated from the second alarm intent.

4. The method of claim 1 , further comprising:

in response to determining that the instance of the plurality of instances of the alarm rule execution engine corresponding to the device has failed, reassigning the rule to a different instance of the plurality of instances of the alarm rule execution engine.

5. The method of claim 1 , further comprising:

for each device in the set of one or more devices, provisioning a telemetry collector for the device.

6. The method of claim 5 , wherein provisioning the telemetry collector for the device comprises selecting a protocol for receiving the telemetry data from the device.

7. The method of claim 6 , wherein selecting the protocol for receiving the telemetry data comprises selecting the protocol based on a resource load associated with the protocol.

8. The method of claim 6 , wherein the device implements a streaming protocol and a polling protocol, and wherein selecting the protocol for receiving the telemetry data comprises selecting the streaming protocol.

9. The method of claim 1 , wherein determining, based on the rule, that the telemetry data matches the alarm criteria comprises performing a sliding window analysis on a telemetry data stream of the telemetry data received from the device.

10. An alarm service system comprising:

an alarm controller comprising processing circuitry configured to allocate each device of a plurality of devices to a corresponding instance of a plurality of instances of an alarm rule execution engine;

an alarm intent compiler comprising processing circuitry configured to:

obtain data representing an alarm intent,

translate the data representing the alarm intent into a rule, the rule specifying alarm criteria an alarm, and

determine a set of devices of the plurality of devices that are specified by the rule;

an alarm rule programmer comprising processing circuitry configured to, for each device in the set of one or more devices, assign the rule to the instance of the plurality of instances of the alarm rule execution engine corresponding to the device,

wherein the instance of the plurality of instances of the alarm rule execution engine corresponding to the device is configured to:

receive telemetry data from the device,

apply the rule to the telemetry data, and

in response to a determination that the telemetry data matches the alarm criteria for the rule, output an indication of the alarm;

a telemetry service, wherein the alarm controller is further configured to register the set of one or more devices specified by the rule with the telemetry service, wherein the set of one or more devices provides the telemetry data in response to the registration; and

wherein, for at least one device in the set of one or more devices, subscribing, by the instance of the plurality of instances of the alarm rule execution engine corresponding to the at least one device, to the telemetry service to obtain the telemetry data for the at least one device.

11. The alarm service system of claim 10 , wherein to translate the data representing the alarm intent, the alarm intent compiler is configured to:

determine that the set of one or more devices are to be associated with the rule; and

generate the rule to specify the set of one or more devices.

12. The alarm service system of claim 10 , wherein to translate the data representing the alarm intent, the alarm intent compiler is configured to:

in response to a determination that the alarm intent is a combination of a first alarm intent and a second alarm intent, generate the rule as a combination of one or more first rules translated from the first alarm intent and one or more second rules translated from the second alarm intent.

13. The alarm service system of claim 10 , wherein the alarm controller is further configured to, for each device in the set of one or more devices, provision a telemetry collector for the device.

14. The alarm service system of claim 13 , wherein to provision the telemetry collector for the device, the alarm control is configured to select a protocol for receiving the telemetry data from the device.

15. The alarm service system of claim 10 , wherein the plurality of devices include one or more network devices and one or more host devices.

16. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause processing circuitry of a computing system to:

allocate each device of a plurality of devices to a corresponding instance of a plurality of instances of an alarm rule execution engine;

obtain data representing an alarm intent;

translate the data representing the alarm intent into a rule, the rule specifying alarm criteria for an alarm;

determine a set of one or more devices of the plurality of devices that are specified by the rule,

for each device in the set of one or more devices, assign the rule to the instance of the plurality of instances of the alarm rule execution engine corresponding to the device, wherein the instance of the alarm rule execution engine is configured to apply the rule to telemetry data received from the device;

in response to a determination, by the instance of the plurality of instances of the alarm rule execution engine corresponding to the device, that the telemetry data matches the alarm criteria for the rule, outputting an indication of the alarm corresponding to the rule;

register the set of one or more devices specified by the rule with a telemetry service, wherein the telemetry service configures the set of one or more devices to provide telemetry data in response to the registering; and

for at least one device in the set of one or more devices, subscribe, by the instance of the plurality of instances of the alarm rule execution engine corresponding to the at least one device, to the telemetry service to obtain the telemetry data for the at least one device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2023
From: BANKA, TARUN; GHOTIKAR, ADITI; VANJARE, GAURESH DILIP; CHITALIA, HARSHIT NARESH; PATEL, RAJENKUMAR; WEI, YIXIAO
To: JUNIPER NETWORKS, INC
Reel/Frame 065781/0188 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2023
From: BANKA, TARUN; GHOTIKAR, ADITI; VANJARE, GAURESH DILIP; PATEL, RAJENKUMAR; WEI, YIXIAO
To: JUNIPER NETWORKS, INC
Reel/Frame 065658/0570 →
Continuity (2)
Continuation 16947927 · Aug 24, 2020
Related Publication 20220224586A1 · Jul 14, 2022
Cited By (5)
US 12,199,813 US 12,238,069 US 12,244,566 US 12,267,300 US 12,647,394