DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1....
Transcript of DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1....
![Page 1: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/1.jpg)
DISTRIBUTEDTRACINGSYSTEM吴晟
@wu-sheng, GitHub
HTTPS://GITHUB.COM/OPENSKYWALKING/SKYWALKING
Huawei
OpenTracing&OTIABMember
Trace Context Member
Oct. 2017
![Page 2: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/2.jpg)
WHOAMI?
GitHub: https://github.com/wu-sheng
Personal Homepage: https://wu-sheng.github.io/me/
• PrincipleEngineer / Tracing Expert, 2012Labs,Huawei
• SkywalkingAPMfounder, OpenSkywalking AdminandPMCmember
• OpenTracingMember
• OTIAB(OpenTracingIndustrialAdvisory Board)Member
• TraceContext Specification Member
• OpenTracingevangelistandcontributor
• 2017GSoC (GoogleSummerofCode)Mentor forCNCF(CloudNativeComputing Foundation)
![Page 3: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/3.jpg)
METRICS,TRACING, LOGGING
![Page 4: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/4.jpg)
WHATISDISTRIBUTEDTRACING?
ServiceA
ServiceB
ServiceC
Redis
MySQL1
ServiceE
MySQL2
![Page 5: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/5.jpg)
WHATISOPENTRACING?
• Itisaspecification• Notadatastructure• Justalayer,anAPIsSuit.• Benefit for manual instrumentation
• Supporting OpenTracing = Supporting someAPI libraries.
• In Java, the top and almost all commercialAPMproducts based on autoinstrumentation.• Just do the manual instrumentation in certaincircumstances.
![Page 6: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/6.jpg)
SKYWALKING• DistributedTracingSystem• Morethanadistributedtracingsystem,anApplicationPerformanceMonitoringSystem
• Collect JVMmetric
• ApplicationTopologicalDiscovery• ServiceDependencyDiscovery
• CollectServiceMetric• Alerting(TODOListfeature),providedsoon
• Provide highperformanceJavaAuto-InstrumentationAgent.Cost10%CPU in5000tps.• Support logging integration. Ifyouwantan ELK-stylesystemworkingwithSkywalking.• Supportmultistorageimplementation.H2,ElasticSearchfornow;dangdang providesSharding-JDBCsoon.• 30+librariessupported.• GitHub:https://github.com/OpenSkywalking/skywalking
• 1500+stars
• 开源中国GVP项目• CNCF,CloudNativeComputingFoundation,OpenTracingSupportedTracer• TraceContext Specification member
![Page 7: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/7.jpg)
SKYWALKINGECO-SYSTEM
ProjectManagementCommittee• 吴晟 Huawei• 张鑫• 彭勇升 R&Ddirector,Tydic
CommitterTeam• 柏杨 SeniorEngineer, AlibabaGroup.• 高洪涛 SeniorArchitect,dangdang.com
15+ Contributors
Partners
![Page 8: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/8.jpg)
SKYWALKING 3.2.3ROADMAP
![Page 9: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/9.jpg)
SKYWALKING TRACING CORE CONCEPT
• TraceSegment-1
1. Create entry span
2. Extract (done, but got nothing)
3. Create exit span
4. Inject
5. Stop exit span
6. Stop entry span
ServiceA
ServiceB
ServiceC
MySQL1
New Thread
• TraceSegment-2
1. Create entry span
2. Extract ContextCarrier
3. Create Exit/Inject/Stop Exit
4. [Async Module]
1. Create Local span
2. Capture Snapshot
3. [New Thread]Continued Snapshot
4. Create Local span
5. Stop entry span
• TraceSegment-3
1. Create entry span
2. Extract ContextCarrier
3. Create exit span
4. Stop exit span
5. Stop entry span
![Page 10: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/10.jpg)
DEMONSTRATION• Skywalking 3.2.3
• Spring Cloud
• Netflix Eureka
• https://github.com/SkywalkingTest/spring-cloud-example
![Page 11: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/11.jpg)
Topologicalgraphofapplicationclusters
![Page 12: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/12.jpg)
TRACE
![Page 13: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/13.jpg)
JVM
![Page 14: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/14.jpg)
SERVICEREFERENCETREE
![Page 15: DISTRIBUTED TRACING SYSTEM · 2017. 10. 31. · MySQL1 NewThread • TraceSegment -2 1. Createentryspan 2. ExtractContextCarrier 3. CreateExit/Inject/StopExit 4. [Async Module] 1.](https://reader035.fdocument.pub/reader035/viewer/2022071410/6104f35497793219624ba3b5/html5/thumbnails/15.jpg)
THANKS