IP Library Granted Patent US 10,244,034
Granted Patent B2
US 10,244,034 · App. 15/472,765 · Granted Mar 26, 2019

Introspection driven monitoring of multi-container applications

Inventors: Prabodh Joshi (Islandia, NY); Mark Emeis (Islandia, NY); James Douglas Engquist (Islandia, NY); Dann M. Church (Islandia, NY)
Assignee: CA, Inc.
H04L67/025H04L41/5035H04L41/5096H04L41/0816
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,244,034
App. No.
15/472,765
Granted
Mar 26, 2019
Kind
B2
Abstract

Provided is a process, including: obtaining a composition record defining at least one service of a multi-container application; selecting a plurality of infrastructure or application performance monitoring agents based on the composition record defining the multi-container application; causing the selected agents to be deployed on one or more computing devices executing the multi-container application; receiving metrics or events from the agents indicative of performance of at least part of the multi-container application or at least some of the one or more computing devices executing the multi-container application; and causing an indication of the received metrics or events to be presented.

Claims (75)

1. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

obtaining, with one or more processors, a composition record defining at least one service of a multi-container application, wherein:

the multi-container application comprises a plurality of containers configured to run in one or more instances of a container engine executing on one or more computing devices,

the containers each contain a respective application component of the multi-container application and respective dependencies of the respective application component,

the composition record specifies a respective image identifier or build file-system-path of respective application components that, when executed, implement respective services of the multi-container application,

selecting, with one or more processors, a plurality of infrastructure or application performance monitoring agents based on the composition record defining the multi-container application;

causing, with one or more processors, the selected agents to be deployed on one or more computing devices executing the multi-container application;

receiving, with one or more processors, metrics or events from the agents indicative of performance of at least part of the multi-container application or at least some of the one or more computing devices executing the multi-container application; and

causing, with one or more processors, an indication of the received metrics or events to be presented.

2. The medium of claim 1 , wherein:

a kernel of an operating system of at least one of the one or more computing devices executing the multi-container application executes a plurality of the containers in respective user-space instances isolated from one another;

the composition record is a compose file stored in persistent memory and encoded in a human-readable data serialization language;

the multi-container application comprises more than three containers corresponding to more than three difference services in a service-oriented logical architecture of the multi-container application;

selecting a plurality of agents comprises selecting a plurality of agents based on respective tokens corresponding to the selected agents parsed from the compose file;

causing the selected agents to be deployed comprises causing at least a plurality of the selected agents to be deployed in a monitoring container configured to monitor performance of other containers in the multi-container application;

the dependencies include a version of a library called by at least one application component and a version of a framework that calls at least one application component; and

the metric or events indicate an amount of a storage volume used or amounts of reads from or writes to a storage volume.

3. The medium of claim 1 , wherein:

selecting the plurality of infrastructure or application performance monitoring agents comprises selecting an agent based on a network port number specified by the composition record.

4. The medium of claim 3 , wherein the operations comprise:

parsing the composition record to detect a pattern including a key indicative of a port specification, a colon indicating a pairing of the key with a value, and a value comprising a sequence of network port numbers delimited by a delimiter character;

splitting a string including the sequence of network port numbers according to the delimiter character to form an array; and

iterating through the array and comparing items in the array to records in a mapping between network port numbers and types of agents.

5. The medium of claim 1 , comprising:

parsing the composition record;

detecting a token in the composition record;

determining that the token corresponds to a service; and

determining that the service corresponds to a service-specific agent, wherein:

selecting the plurality of infrastructure or application performance monitoring agents comprises selecting the service-specific agent.

6. The medium of claim 1 , comprising:

identifying a provider of a given container of the multi-container application based on the composition record, wherein:

at least some of the selected agents are selected based on the identified provider.

7. The medium of 6 , wherein:

the at least one of the selected agents is selected based on the identified provider, an identifier of the given container in the composition record, and a network port number listed in the composition record.

8. The medium of claim 1 , wherein causing the selected agents to be deployed comprises adding an image identifier of a container image that includes the selected agent to the composition record.

9. The medium of claim 1 , wherein the selected agents include an infrastructure agent configured to obtain metrics of one of the one or more computing devices executing the multi-container application, the metrics including an amount of processor utilization.

10. The medium of claim 1 , wherein the selected agents include an application performance monitor agent configured to obtain run-times of one or more routines of one of the application components, the run-times each corresponding to a during of time a routine takes to service a portion of a transaction serviced by a plurality of routines.

11. The medium of claim 1 , wherein:

a given one of the selected agents is configured to monitor a corresponding container of the multi-container application via a Java Management Extension interface without the given one of the selected agents executing in a shared user-space instance with the corresponding container.

12. The medium of claim 1 , comprising:

adjusting configurations of one or more agents based on the composition record, wherein adjusting configurations comprises:

changing a metric monitored;

changing a threshold for an alarm; and

determining an interface by which information is ingested by a selected agent.

13. The medium of claim 1 , comprising:

accessing, with a given agent, a packet sent or received by a given container of the multi-container application;

adjusting a configuration of the given agent based on the packet.

14. The medium of claim 1 , comprising:

accessing, with a given agent, a packet sent or received by a given container of the multi-container application by reading a value from a network interface buffer either on the buffer or in system memory allocated to a driver of the network interface; and

adding another agent to monitor the multi-container application based on the packet.

15. The medium of claim 1 , wherein:

selecting a plurality of infrastructure or application performance monitoring agents comprises steps for selecting agents.

16. The medium of claim 1 , comprising:

orchestrating the multi-container application with a platform agnostic orchestration application.

17. The medium of claim 1 , wherein:

the composition record is a Docker-standard compliant compose file or a Kubernetes-standard compliant manifest.

18. A method comprising:

obtaining, with one or more processors, a composition record defining at least one service of a multi-container application, wherein:

the multi-container application comprises a plurality of containers configured to run in one or more instances of a container engine executing on one or more computing devices,

the containers each contain a respective application component of the multi-container application and respective dependencies of the respective application component,

the composition record specifies a respective image identifier or build file-system-path of respective application components that, when executed, implement respective services of the multi-container application,

selecting, with one or more processors, a plurality of infrastructure or application performance monitoring agents based on the composition record defining the multi-container application;

causing, with one or more processors, the selected agents to be deployed on one or more computing devices executing the multi-container application;

receiving, with one or more processors, metrics or events from the agents indicative of performance of at least part of the multi-container application or at least some of the one or more computing devices executing the multi-container application; and

causing, with one or more processors, an indication of the received metrics or events to be presented.

19. The method of claim 18 , comprising:

identifying a provider of a given container of the multi-container application based on the composition record, wherein:

at least some of the selected agents are selected based on the identified provider, and

selecting the plurality of infrastructure or application performance monitoring agents comprises selecting an agent based on a network port number specified by the composition record.

20. The method of claim 18 , comprising:

parsing the composition record;

detecting a token in the composition record;

determining that the token corresponds to a service; and

determining that the service corresponds to a service-specific agent, wherein:

selecting the plurality of infrastructure or application performance monitoring agents comprises selecting the service-specific agent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2017
From: JOSHI, PRABODH; EMEIS, MARK; ENGQUIST, JAMES DOUGLAS; CHURCH, DANN M.
To: CA, INC.
Reel/Frame 042933/0856 →
Continuity (1)
Related Publication 20180288129A1 · Oct 4, 2018
Cited By (2)
US 12,260,205 US 12,327,020