IP Library Granted Patent US 10,084,672
Granted Patent B2
US 10,084,672 · App. 15/347,970 · Granted Sep 25, 2018

System and method for measuring performance and availability of applications utilizing monitoring of distributed systems processes combined with analysis of the network communication between the processes

Inventors: Krzysztof Hoja (Gdansk, PL); Grzegorz Pawelczak (Gdansk, PL); Pawel Brzoska (Kolbuddy, PL); Bernd Greifeneder (Linz, AT)
Assignee: Dynatrace LLC
H04L43/04H04L41/046H04L41/065H04L43/0811H04L43/10H04L67/10
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,084,672
App. No.
15/347,970
Granted
Sep 25, 2018
Kind
B2
Abstract

A performance monitoring and management system is provided for monitoring both server side and network side performance parameters of overall communication between distributed system components. The system can track availability of system component as well as detect problematic topology connections caused by failed or overload elements. The monitoring system combines information from operating system's internal data structures and APIs with information available in raw communication data streams as available at each end of communication channel.

Claims (57)

1. A computer-implemented method for monitoring performance in a distributed computing environment, comprising:

instrumenting an operating system on a computing device with an operating system agent and a network agent;

determining, by an operating system agent, a process associated with each network connection handled by the operating system;

detecting, by the operating system agent, a change in state of a given network connection handled by the operating system;

generating, by the operating system agent, a communication event in response to detecting a change in the state of the given network connection, where the communication event includes identifying information for the given network connection, the state of the given network connection, and an identifier for the process associated with the given network connection;

determining, by the network agent, identifying information for the given network connection;

determining, by the network agent, performance metrics from data packets transmitted via the given network connection and processed by the network agent;

correlating, by the operating system agent, the performance metrics for the given network connection with the communication event using the identifying information for the given network connection; and

transmitting, by the operating system agent, the communication event across a network to a monitoring node located remotely from the computing device;

wherein detecting a change in state of a given network connection handled by the operating system further comprises:

instrumenting processes with an in-process agent;

registering, by the in-process agent, with an operating system interface, where the operating system interface provides notifications for system changes regarding network connections handled by the operating system;

receiving, by the in-process agent, notifications for system changes regarding the given network connection from the operating system interface; and

passing, by the in-process agent, the notifications to the operating system agent.

2. The computer-implemented method of claim 1 wherein determining performance metrics pertaining to the given network connection further comprises

receiving data packets from a kernel of the operating system;

storing the data packets in a buffer; and

analyzing the data packets associated with the given network connection, thereby determining performance metrics pertaining to the given network connection.

3. The computer-implemented method of claim 2 wherein the performance metrics include number of rejected connections and number of accepted connections by a socket.

4. The computer-implemented method of claim 1 further comprises

receiving, by the monitoring node, a first communication event from the computing device;

receiving, by the monitoring node, a second communication event from another computing device, where the second communication event includes identifying information for the given network connection, the state of the given network connection, and an identifier for a second process associated with the given network connection; and

correlating, by the monitoring node, first communication event with the second communication event.

5. The computer-implemented method of claim 1 wherein the operating system agent is configured with access control that differs from access control of the network agent.

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

maintaining, by the operating system agent, current state of the given network connection in a process repository;

receiving, by the operating system agent, a communication attempt event for the given network connection from the network agent;

retrieving, by the operating system agent, the current state of the given network connection from the process repository;

determining, by the operating system agent, a cause of a failed communication attempt over the given network connection using the current state of the given network connection; and

appending, by the operating system agent; the cause of the failed communication attempt to the communication event prior to the transmission of the communication event to the monitoring node.

7. The computer-implemented method of claim 6 further comprising:

identifying the cause of the failed communication attempt as a process shutdown when status of the process is inactive and status of the given network connection is inactive;

identifying the cause of the failed communication attempt as a process misconfigured when status of the process is active and status of the given network connection is inactive;

identifying the cause of the failed communication attempt as a process misconfigured when status of the process is active and status of the given network connection is active; and

identifying the cause of the failed communication attempt as a process unknown when an entry for the process is not found in the process repository.

8. A computer-implemented system for monitoring performance in a distributed computing environment, comprising:

an operating system agent instrumented in an operating system on a computing device and executed by a processor of the computing device, the operating system agent determines a process associated with each network connection handled by the operating system and detects a change in state of a given network connection handled by the operating system and, in response to detecting a change in the state of the given network connection, generates a communication event, where the communication event includes identifying information for the given network connection, the state of the given network connection, and an identifier for the process associated with the given network connection; and

a network agent instrumented in the operating system on the computing device and executed by the processor of the computing device, the network agent determines identifying information for the given network connection and determines performance metrics from data packets received via the given network connection;

wherein the operating system agent correlates the performance metrics for the given network connection with the communication event using the identifying information for the given network connection and transmits the communication event across a network to a monitoring node located remotely from the computing device;

wherein operating system agent detects a change in state of a given network connection handled by the operating system by:

instrumenting processes with an in-process agent;

registering, by the in-process agent, with an operating system interface, where the operating system interface provides notifications for system changes regarding network connections handled by the operating system;

receiving, by the in-process agent, notifications for system changes regarding the given network connection from the operating system interface; and

passing, by the in-process agent, the notifications to the operating system agent.

9. The computer-implemented system of claim 8 wherein the network agent determines performance metrics pertaining to the given network connection by:

receiving data packets from a kernel of the operating system;

storing the data packets in a buffer; and

analyzing the data packets associated with the given network connection, thereby determining performance metrics pertaining to the given network connection.

10. The computer-implemented system of claim 9 wherein the performance metrics include number of rejected connections and number of accepted connections by a socket.

11. The computer-implemented system of claim 8 wherein the monitoring node receives a first communication event from the computing device; receives a second communication event from another computing device, where the second communication event includes identifying information for the given network connection, the state of the given network connection, and an identifier for a second process associated with the given network connection; and correlates the first communication event with the second communication event.

12. The computer-implemented system of claim 8 wherein the operating system agent is configured with access control that differs from access control of the network agent.

13. The computer-implemented system of claim 8 wherein the operating system agent maintains current state of the given network connection in a process repository; receives a communication attempt event for the given network connection from the network agent; retrieves the current state of the given network connection from the process repository; determines a cause of a failed communication attempt over the given network connection using the current state of the given network connection; and appends the cause of the failed communication attempt to the communication event prior to the transmission of the communication event to the monitoring node.

14. The computer-implemented system of claim 13 wherein the operating system agent determines a cause of a failed communication attempt by:

identifying the cause of the failed communication attempt as a process shutdown when status of the process is inactive and status of the given network connection is inactive;

identifying the cause of the failed communication attempt as a process misconfigured when status of the process is active and status of the given network connection is inactive;

identifying the cause of the failed communication attempt as a process misconfigured when status of the process is active and status of the given network connection is active; and

identifying the cause of the failed communication attempt as a process unknown when an entry for the process is not found in the process repository.

Assignments (6)
SECURITY INTEREST Recorded Dec 16, 2022
From: DYNATRACE LLC
To: BMO HARRIS BANK N.A.
Reel/Frame 062142/0187 →
RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 046923/0557 Recorded Dec 5, 2022
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: DYNATRACE, LLC
Reel/Frame 062056/0562 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 46923/0528 Recorded Aug 6, 2019
From: JEFFERIES FINANCE LLC, COLLATERAL AGENT
To: DYNATRACE LLC
Reel/Frame 049966/0518 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Aug 24, 2018
From: DYNATRACE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046923/0528 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 24, 2018
From: DYNATRACE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046923/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2016
From: HOJA, KRZYSZTOF; PAWELCZAK, GRZEGORZ; BRZOSKA, PAWEL; GREIFENEDER, BERND
To: DYNATRACE LLC
Reel/Frame 040275/0662 →
Continuity (2)
Provisional Application 62253283 · Nov 10, 2015
Related Publication 20170134247A1 · May 11, 2017
Cited By (1)
US 12,212,450