TRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES
With the increasing use of distributed system-based applications, the demand for tracing system as debugging tools for respective system also increases. Specifically, on Kubernetes environment, tracing on microservice-based systems is not an easy task due to the heterogeneity of the architecture....
Saved in:
Main Author: | |
---|---|
Format: | Final Project |
Language: | Indonesia |
Online Access: | https://digilib.itb.ac.id/gdl/view/49902 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Institut Teknologi Bandung |
Language: | Indonesia |
id |
id-itb.:49902 |
---|---|
spelling |
id-itb.:499022020-09-21T12:27:25ZTRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES Perdanaputra, Abram Indonesia Final Project transparent tracing; gRPC; log analysis; passive tracing INSTITUT TEKNOLOGI BANDUNG https://digilib.itb.ac.id/gdl/view/49902 With the increasing use of distributed system-based applications, the demand for tracing system as debugging tools for respective system also increases. Specifically, on Kubernetes environment, tracing on microservice-based systems is not an easy task due to the heterogeneity of the architecture. gRPC provides a more performant way to communicate between microservice. This leads to a need of a tracing system that are transparent with respect to the applications that supports gRPC as its main communication protocol to ease the use of tracing on heterogeneous environment. The approach used to achieve transparency is passive tracing. Passive tracing requires the system to perform tracing without any modifications to the application or the application runtime. This system implements passive tracing by performing packet interception on every packet sent by the application, recording the gRPC request data, and writing the trace data to a log. The resulting log will be stored in Elasticsearch and visualized using Kibana for further analysis. The implementation of this system adds an average overhead CPU usage of 8.8% with Elastic stack and 3.5% without Elastic stack and memory usage of 959 MB with Elastic stack and 378 MB without Elastic stack. In addition, 61.9% of the actual request successfully traced using this system. This implementation successfully traces transparently, but the log-based approach makes the system unable to trace recursively. This results request causality will not be known. This means the trace results can only produce metadata for each request without knowing the relationship of one request with another. Furthermore, the absence of request causality results an inaccurate number of the success rate of the trace due to matching can only be done by service name and method without the context of each request. text |
institution |
Institut Teknologi Bandung |
building |
Institut Teknologi Bandung Library |
continent |
Asia |
country |
Indonesia Indonesia |
content_provider |
Institut Teknologi Bandung |
collection |
Digital ITB |
language |
Indonesia |
description |
With the increasing use of distributed system-based applications, the demand for tracing
system as debugging tools for respective system also increases. Specifically, on Kubernetes
environment, tracing on microservice-based systems is not an easy task due to the
heterogeneity of the architecture. gRPC provides a more performant way to communicate
between microservice. This leads to a need of a tracing system that are transparent with respect
to the applications that supports gRPC as its main communication protocol to ease the use of
tracing on heterogeneous environment. The approach used to achieve transparency is passive
tracing. Passive tracing requires the system to perform tracing without any modifications to the
application or the application runtime. This system implements passive tracing by performing
packet interception on every packet sent by the application, recording the gRPC request data,
and writing the trace data to a log. The resulting log will be stored in Elasticsearch and
visualized using Kibana for further analysis. The implementation of this system adds an
average overhead CPU usage of 8.8% with Elastic stack and 3.5% without Elastic stack and
memory usage of 959 MB with Elastic stack and 378 MB without Elastic stack. In addition,
61.9% of the actual request successfully traced using this system. This implementation
successfully traces transparently, but the log-based approach makes the system unable to trace
recursively. This results request causality will not be known. This means the trace results can
only produce metadata for each request without knowing the relationship of one request with
another. Furthermore, the absence of request causality results an inaccurate number of the
success rate of the trace due to matching can only be done by service name and method without
the context of each request.
|
format |
Final Project |
author |
Perdanaputra, Abram |
spellingShingle |
Perdanaputra, Abram TRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES |
author_facet |
Perdanaputra, Abram |
author_sort |
Perdanaputra, Abram |
title |
TRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES |
title_short |
TRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES |
title_full |
TRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES |
title_fullStr |
TRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES |
title_full_unstemmed |
TRANSPARENT TRACING SYSTEM ON GRPC BASED MICROSERVICE APPLICATIONS RUNNING ON KUBERNETES |
title_sort |
transparent tracing system on grpc based microservice applications running on kubernetes |
url |
https://digilib.itb.ac.id/gdl/view/49902 |
_version_ |
1822928306020810752 |