SkyAPM / go2sky

Distributed tracing and monitor SDK in Go for Apache SkyWalking APM
https://skywalking.apache.org/
Apache License 2.0
448 stars 123 forks source link

EntrySpan and ExitSpan. #30

Closed surechen closed 5 years ago

surechen commented 5 years ago

Describe the bug A clear and concise description of what the bug is. I have three services a, b and c. Interaction between services is user->a->b->c. I use function CreateEntrySpan in a and CreateExitSpan in b. The topology diagram in skywalking is not in line with my expectations which is user->a and b->c. But there is no line between a and b. Could you show me how to solve this problem. Thanks

To Reproduce Steps to reproduce the behavior:

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem. image

In this png user -> mersher-webapp(CreateEntrySpan) -> calculator(CreateExitSpan) -> 127.0.0.1:4500. Desktop (please complete the following information):

Additional context Add any other context about the problem here.

wu-sheng commented 5 years ago

I use function CreateEntrySpan in a and CreateExitSpan in b.

I am a little confused about this usage. Entry and exit span creations should be used in every service. Entry span is the HTTP handler's responsibility and exit span represents the outgoing call at client side.

surechen commented 5 years ago

Could you show me some example code for using SkyAPM/go2sky in multi-service Interaction scenario?Thanks.

wu-sheng commented 5 years ago

When you received a HTTP request, create an entry span(extract the context). Before you call target, create exit span(inject context). And you need to read SkyWalking document and plugin development guide. The basic concepts are all there.