distributed tracing system · 2017. 10. 31. · mysql1 newthread • tracesegment -2 1....
TRANSCRIPT
DISTRIBUTEDTRACINGSYSTEM吴晟
@wu-sheng, GitHub
HTTPS://GITHUB.COM/OPENSKYWALKING/SKYWALKING
Huawei
OpenTracing&OTIABMember
Trace Context Member
Oct. 2017
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)
METRICS,TRACING, LOGGING
WHATISDISTRIBUTEDTRACING?
ServiceA
ServiceB
ServiceC
Redis
MySQL1
ServiceE
MySQL2
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.
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
SKYWALKINGECO-SYSTEM
ProjectManagementCommittee• 吴晟 Huawei• 张鑫• 彭勇升 R&Ddirector,Tydic
CommitterTeam• 柏杨 SeniorEngineer, AlibabaGroup.• 高洪涛 SeniorArchitect,dangdang.com
15+ Contributors
Partners
SKYWALKING 3.2.3ROADMAP
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
DEMONSTRATION• Skywalking 3.2.3
• Spring Cloud
• Netflix Eureka
• https://github.com/SkywalkingTest/spring-cloud-example
Topologicalgraphofapplicationclusters
TRACE
JVM
SERVICEREFERENCETREE
THANKS