  The high tracking overhead, the amount of up-front effort required to
selecting the trace points, and the lack of effective data analysis model are
the significant barriers to the adoption of intra-component tracking for fault
diagnosis today. This paper introduces a novel method for fault diagnosis by
combining adaptive function level dynamic tracking, target fault injection, and
graph convolutional network. In order to implement this method, we introduce
techniques for (i) selecting function level trace points, (ii) constructing
approximate function call tree of program when using adaptive tracking, and
(iii) constructing graph convolutional network with fault injection campaign.
We evaluate our method using a web service benchmark composed of Redis, Nginx,
Httpd, and SQlite. The experimental results show that this method outperforms
log based method, full tracking method, and Gaussian influence method in the
accuracy of fault diagnosis, overhead, and performance impact on the diagnosis
target.
