Best practice to use X-Ray with Appmesh

0

I would like to know when using Appmesh, what is the best practice for distributed tracing? Since Envoy is running alongside every service, Do we need to instrument our application with SDK? Or Envoy is enough for sending tracing data? After all one of the Service Mesh benefits is observability. In other words, in what situation do we need to instrument our application ourselves when using app mesh?

2 Answers
0

Couple of things -

1, X-Ray is not only about "gathering" the traces. It's also about analytics and visualization. i.e. what you gonna do AFTER the traces are generated. It's like Prometheus and Grafana (not exactly, but you get the point). You can use Appmesh to send the traces to X-Ray and generate insight from them.

2, Envoy used in Appmesh not necessarily support all the latest features of Envoy. One noticeable one is not able to set the sampling rate. If that's something you want to customize, X-Ray is an option.

Jason_S
answered 2 years ago
  • Thanks. I totally agree with you on 1. We are gonna use X-Ray to analyze our application and potentially improve it.

    My point is if we need to instrument our application manually what is the point of Appmesh sending X-Ray traces? I think in a perfect world when using Service Mesh(Appmesh) we no longer need to instrument our application and Envoy does it on our behalf.

    What we are doing now: We are using Golang gin framework and because X-Ray SDK does not support gin, we had to use OTEL. At the same time, we are using Appmesh. My question is do we need to instrument our application(gin) while we are using Appmesh?

0

I would like to know when using Appmesh, what is the best practice for distributed tracing? AppMesh distribute requests to downstream services, the envoy will be nodes in XRay trace graph.

Since Envoy is running alongside every service, Do we need to instrument our application with SDK? Because Envoy supports vend segment, user can get segments represent envoy nodes in trace graph, even does not instrument application code by OTel/XRay SDKs. But if user wants to have more details instrumentation info in application, can further instrument application either by ADOT or XRay sdk.

Or Envoy is enough for sending tracing data? After all one of the Service Mesh benefits is observability. In other words, in what situation do we need to instrument our application ourselves when using app mesh? Follow previous question. It is up to how many details user want to have in his trace. The segment vended from envoy has basic data such as name, duration, response code, etc. If user feels it is not enough, can further instrument applications.

AWS
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions