IP Library Granted Patent US 10,432,497
Granted Patent B2
US 10,432,497 · App. 14/524,755 · Granted Oct 1, 2019

Injecting custom classes in application code to facilitate network traffic monitoring

Inventor: Konstantinos Polychronis (San Francisco, CA)
Assignee: SPLUNK INC.
H04L43/12H04L43/08H04L43/028H04L43/14
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,432,497
App. No.
14/524,755
Granted
Oct 1, 2019
Kind
B2
Abstract

Various methods and systems for facilitating network traffic monitoring in association with an application running on a client device are provided. In this regard, aspects of the invention facilitate monitoring network traffic being transmitted to and/or from a client device, such as a mobile device, so that network performance can be analyzed. In various implementations, one or more default classes associated with an application on a device are replaced with one or more custom monitoring classes designed to facilitate monitoring data packets being communicated to or from the application. The custom monitoring classes can then be utilized to facilitate monitoring a plurality of data packets communicated to or from the application.

Claims (38)

1. A method for monitoring network traffic, the method comprising:

injecting, by a computing device using reflection, a call to one or more custom monitoring classes from an SDK generated by an analytics service provider into one or more default classes associated with an application, the one or more custom monitoring classes designed to facilitate monitoring data packets being communicated to or from the application on the computing device, and being unique from the one or more default classes originally developed for implementation;

invoking the call to the one or more custom monitoring classes, by the one or more default classes upon the one or more default classes initiating a network connection, to facilitate monitoring a plurality of data packets communicated to or from the application via a network; and

sequentially replacing default classes used to arrive at the one or more custom monitoring classes with a plurality of custom classes, each custom class modifying a corresponding one of the default classes, to initiate the one or more custom monitoring classes, wherein the one or more custom monitoring classes enable obtaining network data from one or more data packets being communicated to or from the application installed on the computing device by examining the one or more data packets.

2. The method of claim 1 , wherein the computing device comprises a mobile device.

3. The method of claim 1 , wherein the application comprises a mobile application.

4. The method of claim 1 further comprising initiating a monitoring component via the application installed on the computing device, wherein the monitoring component comprises a plug-in for the application.

5. The method of claim 4 , wherein the monitoring component is initiated in accordance with the application being launched.

6. The method of claim 4 , wherein the monitoring component is initiated via a network monitor trigger within code of the application that triggers activation of the monitoring component.

7. The method of claim 6 , wherein the network monitor trigger comprises one line of code that triggers activation of the network monitor.

8. The method of claim 1 , wherein the one or more custom monitoring classes further enable obtaining network data from one or more data packets being communicated to or from the application installed on the computing device by dismissing examination of an unread portion of the one or more data packets upon obtaining desired network data.

9. The method of claim 8 , wherein the network data comprise data indicating information associated with the network.

10. The method of claim 9 , wherein the network data are used to identify performance of the application.

11. The method of claim 8 , wherein examining the one or more data packets comprises examining data packet headers only.

12. The method of claim 8 , wherein examining the one or more data packets comprises examining data packet headers and only examining a data packet payload when data packet size was not identified from a corresponding data packet header.

13. The method of claim 1 , wherein the one or more default classes initiate the network connection.

14. The method of claim 1 , wherein the device comprises a mobile device having an Android-based platform.

15. A system for monitoring network traffic, the system comprising:

one or more data processors; and

one or more computer-readable storage media containing instructions which when executed on the one or more data processors, cause the one or more processors to perform operations including:

injecting, by a computing device using reflection, a call to one or more custom monitoring classes from an SDK generated by an analytics service provider into one or more default classes associated with an application, the one or more custom monitoring classes designed to facilitate monitoring data packets being communicated to or from the application on the computing device and being unique from the one or more default classes originally developed for implementation;

invoking the call to the one or more custom monitoring classes, by the one or more default classes upon the one or more default classes initiating a network connection to facilitate monitoring a plurality of data packets communicated to or from the application via a network; and

sequentially replacing default classes used to arrive at the one or more custom monitoring classes with a plurality of custom classes, each custom class modifying a corresponding one of the default classes, to initiate the one or more custom monitoring classes, wherein the one or more custom monitoring classes enable obtaining network data from one or more data packets being communicated to or from the application installed on the computing device by examining the one or more data packets.

16. The system of claim 15 , wherein the computing device comprises a mobile device.

17. The system of claim 15 , wherein the application comprises a mobile application.

18. The system of claim 15 the operations further comprising initiating a monitoring component via the application installed on the computing device, wherein the monitoring component comprises a plug-in for the application.

19. The system of claim 18 , wherein the monitoring component is initiated in accordance with the application being launched.

20. The system of claim 18 , wherein the monitoring component is initiated via a network monitor trigger within code of the application that triggers activation of the monitoring component.

21. The system of claim 20 , wherein the network monitor trigger comprises one line of code that triggers activation of the network monitor.

22. The system of claim 15 , wherein the one or more custom monitoring classes further enable obtaining network data from one or more data packets being communicated to or from the application installed on the computing device by dismissing examination of an unread portion of the one or more data packets upon obtaining desired network data.

23. The system of claim 22 , wherein the network data comprise data indicating information associated with the network.

24. One or more non-transitory computer-storage media storing computer-executable instructions that, when executed by a computing device, perform a method for monitoring network traffic, the method comprising:

injecting, by a computing device using reflection, a call to one or more custom monitoring classes from an SDK generated by an analytics service provider into one or more default classes associated with an application, the one or more custom monitoring classes designed to facilitate monitoring data packets being communicated to or from the application on the computing device, and being unique from the one or more default classes originally developed for implementation;

invoking the call to the one or more custom monitoring classes, by the one or more default classes upon the one or more default classes initiating a network connection, to facilitate monitoring a plurality of data packets communicated to or from the application via a network; and

sequentially replacing default classes used to arrive at the one or more custom monitoring classes with a plurality of custom classes, each custom class modifying a corresponding one of the default classes, to initiate the one or more custom monitoring classes, wherein the one or more custom monitoring classes enable obtaining network data from one or more data packets being communicated to or from the application installed on the computing device by examining the one or more data packets.

25. The media of claim 24 , wherein the computing device comprises a mobile device.

26. The media of claim 24 the method further comprising initiating a monitoring component via the application installed on the computing device, wherein the monitoring component comprises a plug-in for the application.

27. The system of claim 22 , wherein examining the one or more data packets comprises examining data packet headers only.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2014
From: POLYCHRONIS, KONSTANTINOS
To: SPLUNK, INC.
Reel/Frame 034043/0584 →