IP Library › Granted Patent US 11,570,078
Granted Patent B2
US 11,570,078 · App. 17/531,556 · Granted Jan 31, 2023

Collecting route-based traffic metrics in a service-oriented system

Inventors: Darin Silva Nee (Mill Valley, CA); Brian Thomas Smith (Cupertino, CA); Sergei Rutenberg (San Carlos, CA); Anton Vladilenovich Goldberg (San Jose, CA)
Assignee: Amazon Technologies, Inc.
H04L43/0888
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 11,570,078
App. No.
17/531,556
Granted
Jan 31, 2023
Kind
B2
Abstract

Methods, systems, and computer-readable media for collecting route-based traffic metrics in a service-oriented system are disclosed. A first service in a service-oriented system receives an inbound request from a second service. From the inbound request, the first service extracts, a route identifier representing an upstream route including the second service. The first service stores the route identifier and a counter representing a number of inbound requests with the route identifier that have been received by the first service over a current window of time. The first service sends, to a traffic metric collection system, a metric message comprising the route identifier and the counter. Traffic metric data is determined by the traffic metric collection system using the metric message from the first service and one or more additional metric messages from one or more additional services. The traffic metric data indicates one or more flows of requests through the services.

Claims (68)

1. A system, comprising:

one or more computing devices configured to implement a traffic metric collection system of a service-oriented system that comprises a plurality of services including a first service, a second service, and an additional service, wherein the traffic metric collection system is configured to:

receive, from the first service, one or more metric messages comprising:

a route identifier representing an upstream route that includes the second service, and

a counter representing a number of inbound requests with the route identifier that have been received by the first service over a current window of time;

receive, from the additional service, one or more additional metric messages; and

determine, based at least in part on the one or more metric messages from the first service and the one or more additional metric messages from the additional service, one or more traffic maps that indicate one or more flows of requests through the plurality of services.

2. The system of claim 1 , wherein the metric message indicates a call volume, a response latency, and a success rate at the first service over the current window of time.

3. The system of claim 1 , wherein the one or more traffic maps indicate call volumes, response latency, and success rates at individual ones of the plurality of services.

4. The system of claim 1 , wherein the traffic metric collection system is further configured to:

determine, based on one or more of the metric messages from the first service and one or more additional metric messages from one or more additional services of the plurality of services comprising the additional service, traffic metric data indicating said one or more flows of requests through the plurality of services;

wherein the determined traffic metric data indicates call volumes, response latency, and error rates at individual ones of the plurality of services.

5. The system of claim 4 , wherein the traffic metric collection system is further configured to:

identify one or more traffic anomalies in the service-oriented system based at least in part on the traffic metric data.

6. The system of claim 4 , wherein the traffic metric collection system is further configured to:

determine a resource usage for a root request in the service-oriented system based at least in part on the traffic metric data, wherein the upstream route comprises an additional service that sent the root request.

7. The system of claim 4 , wherein to determine the one or more traffic maps the traffic metric collection system is configured to:

determine a call graph:

that includes a hierarchical data structure that includes a plurality of nodes representing services and one or more edges representing service interactions;

that represents a flow of requests from one of the plurality of services to another one of the plurality of services; and

that identifies service dependencies.

8. A method, comprising:

receiving, from a first service by a traffic collection metric system for a service- oriented system comprising a plurality of services that includes the first service, one or more metric messages comprising:

a route identifier representing an upstream route that includes a second service of the plurality of service, and

a counter representing a number of inbound requests with the route identifier that have been received by the first service over a current window of time;

receiving, by the traffic collection metric system, from an additional service of the plurality of services, one or more additional metric messages; and

generating, based at least in part on the one or more metric messages from the first service and the one or more additional metric messages from the additional service, one or more traffic maps that indicate one or more flows of requests through the plurality of services.

9. The method of claim 8 , further comprising:

determining, by the traffic collection metric system based on one or more of the metric messages from the first service and one or more additional metric messages from one or more additional services of the plurality of services comprising the additional service, traffic metric data indicating said one or more flows of requests through the plurality of services;

wherein said determining traffic metric data comprises determining traffic metric data that indicates call volumes, response latency, and error rates at individual ones of the plurality of services.

10. The method of claim 8 , wherein said receiving the metric messages and said generating the one or more traffic maps are performed at a granularity of individual APIs of the services.

11. The method of claim 8 , wherein said receiving one or more metric messages comprises periodically receiving aggregated metric messages from the first service.

12. The method of claim 8 , wherein said generating one or more traffic maps comprises generating a call graph:

that includes a hierarchical data structure that includes a plurality of nodes representing services and one or more edges representing service interactions;

that represents a flow of requests from one of the plurality of services to another one of the plurality of services; and

that identifies service dependencies.

13. The method of claim 9 , further comprising:

analyzing, by the traffic collection metric system, the traffic metric data; and

performing, based on the analyzing, one selected from:

assigning, to root requests, resource usage values for downstream service usage;

predicting demand to enable auto-scaling of computing resources used to implement one or more of the plurality of services; or

detecting traffic anomalies in call paths.

14. The method of claim 8 , further comprising:

determining, by the traffic collection metric system based on the metric messages, one or more performance metrics, comprising:

average or aggregate client-measured latencies for interactions,

average or aggregate server-measured latencies for interactions, or

average or aggregate transit time metrics for multiple service calls.

15. One or more non-transitory computer-readable storage media storing program instructions that, when executed on or across one or more processors, perform:

receiving, from a first service by a traffic collection metric system for a service- oriented system comprising a plurality of services that includes the first service, one or more metric messages comprising:

a route identifier representing an upstream route that includes a second service of the plurality of service, and

a counter representing a number of inbound requests with the route identifier that have been received by the first service over a current window of time;

receiving, by the traffic collection metric system, from an additional service of the plurality of services, one or more additional metric messages; and

generating, based at least in part on the one or more metric messages from the first service and the one or more additional metric messages from the additional service, one or more traffic maps that indicate one or more flows of requests through the plurality of services.

16. The one or more non-transitory computer-readable storage media of claim 15 , further comprising additional program instructions that, when executed on or across the one or more processors, perform:

determining, by the traffic collection metric system based on one or more of the metric messages from the first service and one or more additional metric messages from one or more additional services of the plurality of services comprising the additional service, traffic metric data indicating said one or more flows of requests through the plurality of services;

wherein said determining traffic metric data comprises determining traffic metric data that indicates call volumes, response latency, and error rates at individual ones of the plurality of services.

17. The one or more non-transitory computer-readable storage media of claim 15 , further comprising additional program instructions that, when executed on or across the one or more processors, perform said receiving the metric messages and said generating the one or more traffic maps at a granularity of individual APIs of the services.

18. The one or more non-transitory computer-readable storage media of claim 15 , wherein said receiving the one or more metric messages comprises periodically receiving aggregated metric messages from the first service.

19. The one or more non-transitory computer-readable storage media of claim 15 , wherein said generating the one or more traffic maps comprises generating a call graph:

that includes a hierarchical data structure that includes a plurality of nodes representing services and one or more edges representing service interactions;

that represents a flow of requests from one of the plurality of services to another one of the plurality of services; and

that identifies service dependencies.

20. The one or more non-transitory computer-readable storage media of claim 15 , further comprising additional program instructions that, when executed on or across the one or more processors, perform:

analyzing, by the traffic collection metric system, the traffic metrics; and

performing, based on the analyzing, one selected from:

assigning, to root requests, resource usage values for downstream service usage;

predicting demand to enable auto-scaling of computing resources used to implement one or more of the plurality of services; or

detecting traffic anomalies in call paths.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2024
From: HSU, GEORGE CHAO-CHIH; TRUCKAI, CSABA
To: CORINTH MEDTECH, INC.
Reel/Frame 066253/0754 →
Continuity (2)
Continuation 16846631 · Apr 13, 2020
Related Publication 20220086075A1 · Mar 17, 2022