Confused of identifying services from MS_CallGraph_Table in MicroserviceTrace-v2021
Hi, I am trying to identify the services from MS_CallGraph_Table in MicroserviceTrace-v2021, and analyze the dynamic call graphs for each service.
I follow the next steps to do this:
- Using the "traceid" to identify each call graph, and I find there are about 9 million call graphs (requests) in the traces.
- In each traceid (request), I try to find the entering call with the rpcid of 0.1 or 0.1.1 and the rpctype of HTTP or userdefined, and record the corresponding calls. But I find about 1 million of the Call Graphs cannot find this kind of call. Some traceid even has a rpcid with '0' like the following figure. In the following figure, what the record with rpcid with '0' represents, and which record is the entering call?

- With the finding entering calls in step 2, I use the combination of (dm, interface) to identify different services. But I find there are 8000+ services in the traces, which is inconsistent with the paper in SoCC'21 (3000+ services). Moreover, more than 5000+ services only have one request in the traces. This looks strange.
- I use the service with the most requests to plot the requests per minute as the figure as follows. It seams that there is no requests for half of the total time in the trace. This also looks strange.

Is there any problem with my method to identify services? If not, why there exists these strange cases?
Thank you very much!
Thanks for your interest. There are some noises in the traces. 1)We only release a small part of the traces. 2)It happens that some traces does not start from 0.1 or 0.1.1. 3)We use the services (8000 - 5000= 3000+) with more than one request for analysis. 3) There are only a few requests at midnight. By the way, we are releasing the new-version traces to fix the problem of the last version. It will be completed in a month; please check the repo for more details. Please let me know if you have any other questions. Thanks.
How are you getting ~9 million trace IDs?
I calculate 20,827,299 unique trace IDs in the 145 files downloaded from: http://alitrip.oss-cn-zhangjiakou.aliyuncs.com/TraceData/MSCallGraph.
I did this by doing the following:
Maintain a set S of trace IDs seen so far
For each of the 145 files
1. Get the unique TRACE_ID in a file
2. Union those TRACE_ID with S
I am also wondering, among rpcid='0', rpcid='0.1', which is the correct enter point of a call graph and which interface should we use to identify a service.