# US 10,313,221 B1 · Endpoint monitoring for a messaging framework

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,221 B1
- Document ID: US10313221B1
- Status: Granted
- Kind: B1
- Application number: 14/166,827
- Filed: 2014-01-28
- Granted: 2019-06-04
- Earliest claimed: 2014-01-28
- Assignees: Sprint Communication Company L.P.
- Applicants: Sprint Communications Company L.P.
- Inventors: Mark D. Leonard
- Web page: https://patentgrep.com/patent/US10313221B1

## CPC

- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 41/5025: by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An endpoint monitoring for a machine to machine (M2M) messaging framework system is disclosed. The system comprises a monitoring server and a monitoring application stored in a memory of the monitoring server. When executed by a processor of the monitoring server, the monitoring application queries a plurality of brokers that are communicatively coupled with a plurality of message queue telemetry transport (MQTT) clients for data regarding the rate of disconnections that occur between the brokers and the MQTT clients. The monitoring application compares the data received from the brokers and compares the rate of disconnections to data in an information data store. If a high rate of disconnections is discovered in at least one of the broker to MQTT client connections, the monitoring application takes action, for example reboots an MQTT client and/or sends a notification message.

## Claims

### Claim 1

An endpoint monitoring system for a machine to machine (M2M) messaging framework system, comprising:
a processor;
a non-transitory memory; and
a monitoring application stored in the non-transitory memory that, when executed by the processor,
periodically sends a query to a plurality of message queue telemetry transport (MQTT) messaging brokers requesting data associated with a count of disconnections between the plurality of MQTT messaging brokers and a plurality of MQTT clients executing in a plurality of different types of wireless endpoint devices,
compares the count of disconnections determined from the data received from the plurality of MQTT messaging brokers to data stored in an information data store, wherein the data in the information data store comprises a historical count of disconnections between the plurality of MQTT messaging brokers and the plurality of MQTT clients,
determines, based on the comparison, whether the determined count of disconnections between at least one of the plurality of MQTT messaging brokers and at least one of the plurality of MQTT clients exceeds a predefined threshold of disconnections, wherein the predefined threshold of disconnections is determined based on the historical count of disconnections and a plurality of factors including a MQTT messaging broker and at least two of a particular time of day, a particular day of week, an application, or a particular geographic area associated with the determined count of disconnections, wherein the historical count of disconnections of the predefined threshold is determined for a periodically cyclical previously occurring combination of the at least two of the particular time of day, the particular day of week, the application, or the particular geographic area corresponding to a current combination of the at least two of the particular time of day, the particular day of week, the application, or the particular geographic area associated with the determined count of disconnections, and wherein the predefined threshold of disconnections is different for different MQTT messaging brokers, and
initiates corrective actions in response to a determination that the determined count of disconnections exceeds the predefined threshold of disconnections, wherein the corrective actions comprise rebooting the at least one of the plurality of MQTT clients with the determined count of disconnections that exceeds the predefined threshold and establishing a connection between a different MQTT messaging broker and the at least one of the plurality of MQTT clients with the determined count of disconnections that exceeds the predefined threshold.

### Claim 2 (depends on 1)

The system of claim 1, wherein the monitoring application monitors at least 1 million connections between the plurality of MQTT messaging brokers and the plurality of MQTT clients.

### Claim 3 (depends on 1)

The system of claim 1, wherein the monitoring application sends a query to the plurality of MQTT messaging brokers every five minutes.

### Claim 4 (depends on 3)

The system of claim 3, wherein the monitoring application sends a query to the plurality of MQTT messaging brokers one of every minute, two minutes, 10 minutes, 30 minutes, or an hour.

### Claim 5 (depends on 1)

The system of claim 1, wherein the data in the information data store is updated every three weeks.

### Claim 6 (depends on 1)

The system of claim 1, wherein the system operates in a backend network-side system that monitors and controls the plurality of MQTT clients as frontend user-side endpoints at least partially based on the historical count of disconnections between the plurality of MQTT messaging brokers and the plurality of MQTT clients and the count of disconnections determined from the data received from the plurality of MQTT messaging brokers, where the plurality of MQTT messaging brokers are implemented in the backend network-side system.

### Claim 7

A method of alerting for an endpoint monitoring for a machine to machine (M2M) messaging framework by a monitoring application stored in a non-transitory memory of a monitoring server and executable by a processor of the monitoring server, said method comprising:
periodically querying a plurality of message queue telemetry transport (MQTT) messaging brokers communicatively coupled with a plurality of MQTT clients for data regarding a count of disconnections between the plurality of MQTT messaging brokers and the plurality of MQTT clients executing in a plurality of different types of wireless endpoint devices;
comparing the count of disconnections determined from the data received from the plurality of MQTT messaging brokers to data stored in an information data store, wherein the data in the information data store comprises a historical count of disconnections between the plurality of MQTT messaging brokers and the plurality of MQTT clients;
determining whether the determined count of disconnections between at least one of the plurality of MQTT messaging brokers and at least one of the plurality of MQTT clients exceeds a predefined threshold of disconnections, wherein the predefined threshold of disconnections is determined based on the historical count of disconnections and a plurality of factors including an MQTT message broker and at least two of a particular time of day, a particular day of week, an application, or a particular geographic area associated with the determined count of disconnections, wherein the historical count of disconnections of the predefined threshold is determined for a periodically cyclical previously occurring combination of the at least two of the particular time of day, the particular day of week, the application, or the particular geographic area corresponding to a current combination of the at least two of the particular time of day, the particular day of week, the application, or the particular geographic area associated with the determined count of disconnections, and wherein the predefined threshold of disconnections is different for different MQTT messaging brokers; and
sending an alert to a workstation and initiating corrective actions in response to a determination that the determined count of disconnections exceeds the predefined threshold of disconnections, wherein the corrective actions comprise rebooting the at least one of the plurality of MQTT clients with the determined count of disconnections that exceeds the predefined threshold and establishing a connection between a different MQTT messaging broker and the at least one of the plurality of MQTT clients with the determined count of disconnections that exceeds the predefined threshold.

### Claim 8 (depends on 7)

The method of claim 7, wherein the data in the information data store is stored as an average disconnection rate data.

### Claim 9 (depends on 8)

The method of claim 8, wherein an amount of disconnections per hour between the plurality of MQTT messages brokers and the plurality of MQTT clients is calculated by the monitoring application for comparison to the historical count of disconnections.

### Claim 10 (depends on 8)

The method of claim 8, wherein a rate of disconnections over periods of time during different days is calculated by the monitoring application for comparison to the historical count of disconnections.

### Claim 11 (depends on 8)

The method of claim 8, wherein a rate of disconnections based on a percentage of disconnections relative to an amount of active connections is calculated by the monitoring application for comparison to the historical count of disconnections.

### Claim 12 (depends on 7)

The method of claim 7, further comprising assigning a priority level of a plurality of priority levels to each rate of a plurality of disconnection rates between the plurality of MQTT messaging brokers and the plurality of MQTT clients based on a percentage of disconnections that occur when compared to the data in the information data store, wherein the plurality of priority levels comprises a level three priority level, a level two priority level, and a level one priority level where the level three priority level represents a connection between a MQTT messaging broker and a MQTT client that is connecting greater than ninety-five percent of the time during connection (Current rate of connection>95%), the level two priority level represents a connection between a MQTT messaging broker and a MQTT client that is connecting less than ninety-five percent of the time, but greater than fifty percent of the time during connection (95%>Current rate of connection>50%), and the level one priority level represents a connection between a MQTT messaging broker and a MQTT client that is connecting less than fifty percent of the time during connection (50%>Current rate of connection).

### Claim 13 (depends on 12)

The method of claim 12, wherein the priority level is assigned based on a mean rate of disconnections experienced between the MQTT messaging broker and the MQTT client, wherein the level three priority level is one standard deviation of disconnections above the mean, the second priority level is two standard deviations of disconnections above the mean, and the third priority level is three standard deviations of disconnections above the mean.

### Claim 14

A method of addressing disconnection issues for an endpoint monitoring for a machine to machine (M2M) messaging system by a monitoring application stored in a non-transitory memory of a monitoring server and executable by a processor of the monitoring server, said method comprising:
periodically sending a plurality of message queue telemetry transport (MQTT) messaging brokers communicatively coupled with a plurality of MQTT clients a request for data regarding a count of disconnections between the plurality of MQTT messaging brokers and the plurality of MQTT clients executing in a plurality of different types of endpoint devices;
comparing the count determined from the data received from the plurality of MQTT messaging brokers to data stored in an information data store, wherein the data in the information data store comprises a historical count of disconnections between the plurality of MQTT messaging brokers and the plurality of MQTT clients;
determining, based on the comparison, whether the determined count of disconnections between at least one of the plurality of MQTT messaging brokers and at least one of the plurality of MQTT clients exceeds a predefined threshold of disconnections, wherein the predefined threshold of disconnections is determined based on the historical count of disconnections and a plurality of factors including an MQTT messaging broker and at least two of a particular time of day, a particular day of week, an application, or a particular geographic area associated with the determined count of disconnections, wherein the historical count of disconnections of the predefined threshold is determined for a periodically cyclical previously occurring combination of the at least two of the particular time of day, the particular day of week, the application, or the particular geographic area corresponding to a current combination of the at least two of the particular time of day, the particular day of week, the application, or the particular geographic area associated with the determined count of disconnections, and wherein the predefined threshold of disconnections is different for different MQTT messaging brokers; and
initiating corrective actions in response to a determination that the determined count of disconnections exceeds the predefined threshold of disconnections, wherein the corrective actions comprise rebooting the at least one of the plurality of MQTT clients with the determined count of disconnections that exceeds the predefined threshold and establishing a connection between a different MQTT messaging broker and the at least one of the plurality of MQTT clients with the determined count of disconnections that exceeds the predefined threshold.

### Claim 15 (depends on 14)

The method of claim 14, wherein the plurality of different types of wireless endpoint devices comprise a head unit in a vehicle, a utility meter, and a mobile communication device.

### Claim 16 (depends on 14)

The method of claim 14, wherein the corrective action further comprises determining specific Internet Protocol addresses associated with disconnections.
