Automatic health check and performance monitoring for applications and protocols using deep packet inspection in a datacenter
A method of collecting health check metrics for a network is provided. The method, at a deep packet inspector on a physical host in a datacenter, receives a copy of a network packet from a load balancer. The packet includes a plurality of layers. Each layer corresponds to a communication protocol in a plurality of communication protocols. The method identifies an application referenced in the packet. The method analyzes the information in one or more layers of the packet to determine metrics for the source application. The method sends the determined metrics to the load balancer.
1. A method of performing load balancing, the method comprising:
at a load balancer:
receiving a set of one or more data message flows;
directing a deep packet inspector to examine the data message flows to extract a set of attributes related to a set of destinations of the data message flows;
receiving the set of attributes from the deep packet inspector;
adjusting, based on the set of attributes, a load balancing operation of the load balancer.
2. The method of claim 1 , wherein the deep packet inspector analyzes information carried in headers of the data messages of the set of flows above a transport layer.
3. The method of claim 1 , wherein the set of attributes comprise a set of health metrics related to a distributed application operating on the set of destinations.
4. The method of claim 3 , wherein the set of attributes further comprises identity of one or more source applications from which the set of data message flows emanates.
5. The method of claim 3 , wherein the set of attributes comprises a response time of the distributed application.
6. The method of claim 3 , wherein the set of attributes comprise one of a frequency of access to a database and a number of database operations performed by the distributed application.
7. The method of claim 3 , wherein the set of attributes further comprise an indication that the distributed application has at least partially failed.
8. The method of claim 7 , wherein the failure of the application is indicated by a status code specified in a header layer over a transport layer 2 of a data message of the flow.
9. The method of claim 1 , wherein the set of attributes comprise one or more error values extracted from the set of data message flows.
10. The method of claim 1 , wherein the set of attributes comprise one or more certificate parameters related to connection session certificates associated with the set of data message flows.
11. A non-transitory machine readable medium storing a load balancer for execution by at least one processing unit, the load balancer comprising sets of instructions for:
receiving a set of one or more data message flows;
directing a deep packet inspector to examine the data message flows to extract a set of attributes related to a set of destinations of the data message flows;
receiving the set of attributes from the deep packet inspector;
adjusting, based on the set of attributes, a load balancing operation of the load balancer.
12. The non-transitory machine readable medium of claim 11 , wherein the deep packet inspector analyzes information carried in headers of the data messages of the set of flows above a transport layer.
13. The non-transitory machine readable medium of claim 11 , wherein the set of attributes comprise a set of health metrics related to a distributed application operating on the set of destinations.
14. The non-transitory machine readable medium of claim 13 , wherein the set of attributes further comprises identity of one or more source applications from which the set of data message flows emanates.
15. The non-transitory machine readable medium of claim 13 , wherein the set of attributes comprises a response time of the distributed application.
16. The non-transitory machine readable medium of claim 13 , wherein the set of attributes comprise one of a frequency of access to a database and a number of database operations performed by the distributed application.
17. The non-transitory machine readable medium of claim 13 , wherein the set of attributes further comprise an indication that the distributed application has at least partially failed.
18. The non-transitory machine readable medium of claim 17 , wherein the failure of the application is indicated by a status code specified in a header layer over a transport layer of a data message of the flow.
19. The non-transitory machine readable medium of claim 11 , wherein the set of attributes comprise one or more error values extracted from the data message flow.
20. The non-transitory machine readable medium of claim 11 , wherein the set of attributes comprise one or more certificate parameters related to connection session certificates associated with the set of data message flows.