TY - GEN
T1 - Snicket
T2 - 20th ACM Workshop on Hot Topics in Networks, HotNets 2021
AU - Berg, Jessica
AU - Ruffy, Fabian
AU - Nguyen, Khanh
AU - Yang, Nicholas
AU - Kim, Taegyun
AU - Sivaraman, Anirudh
AU - Netravali, Ravi
AU - Narayana, Srinivas
N1 - Publisher Copyright:
© 2021 ACM.
PY - 2021/11/10
Y1 - 2021/11/10
N2 - Increasing application complexity has caused applications to be refactored into smaller components known as microservices that communicate with each other using RPCs. Distributed tracing has emerged as an important debugging tool for such microservice-based applications. Distributed tracing follows the journey of a user request from its starting point at the application's front-end, through RPC calls made by the front-end to different microservices recursively, all the way until a response is constructed and sent back to the user. To reduce storage costs, distributed tracing systems sample traces before collecting them for subsequent querying, affecting the accuracy of queries on the collected traces. We propose an alternative system, Snicket, that tightly integrates querying and collection of traces. Snicket takes as input a database-style streaming query that expresses the analysis the developer wants to perform on the trace data. This query is compiled into a distributed collection of microservice extensions that run as "bumps-in-the-wire,"intercepting RPC requests and responses as they flow into and out of microservices. This collection of extensions implements the query, performing early filtering and computation on the traces to reduce the amount of stored data in a query-specific manner. We show that Snicket is expressive in the queries it can support and can update queries fast enough for interactive use.
AB - Increasing application complexity has caused applications to be refactored into smaller components known as microservices that communicate with each other using RPCs. Distributed tracing has emerged as an important debugging tool for such microservice-based applications. Distributed tracing follows the journey of a user request from its starting point at the application's front-end, through RPC calls made by the front-end to different microservices recursively, all the way until a response is constructed and sent back to the user. To reduce storage costs, distributed tracing systems sample traces before collecting them for subsequent querying, affecting the accuracy of queries on the collected traces. We propose an alternative system, Snicket, that tightly integrates querying and collection of traces. Snicket takes as input a database-style streaming query that expresses the analysis the developer wants to perform on the trace data. This query is compiled into a distributed collection of microservice extensions that run as "bumps-in-the-wire,"intercepting RPC requests and responses as they flow into and out of microservices. This collection of extensions implements the query, performing early filtering and computation on the traces to reduce the amount of stored data in a query-specific manner. We show that Snicket is expressive in the queries it can support and can update queries fast enough for interactive use.
UR - http://www.scopus.com/inward/record.url?scp=85119438464&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85119438464&partnerID=8YFLogxK
U2 - 10.1145/3484266.3487393
DO - 10.1145/3484266.3487393
M3 - Conference contribution
AN - SCOPUS:85119438464
T3 - HotNets 2021 - Proceedings of the 20th ACM Workshop on Hot Topics in Networks
SP - 206
EP - 212
BT - HotNets 2021 - Proceedings of the 20th ACM Workshop on Hot Topics in Networks
PB - Association for Computing Machinery, Inc
Y2 - 10 November 2021 through 12 November 2021
ER -