Do Auto and Manual Instrumentation in Apache SkyWalking APM

Today, microservices, cloud native and container-based (Docker, K8s, Mesos) architectures become popular. Ops people need to monitor and trace their distributed system. Apache SkyWalking based on auto instrumentation tracing core, helps people to trace and monitor system, and not need to change any source codes. At the same time, as an OpenTracing compatible tracer, user can do manual instrumentation by using OpenTracing APIs. All auto and instrumentation run in the same context. We will show you how this works. Further, Apache SkyWalking 5.x provides full functional APM features and visualization. We will demonstrate our analysis, aggregation, alarm and trace capabilities in our UI, based on the tracing data.

1.Do Auto and Manual Instrumentation In Apache SkyWalking Wu Sheng Apache SkyWalking original creator, PMC, Committer Microsoft MVP

2.Wu Sheng • What am I doing? – Apache SkyWalking(incubating) – SkyWalking multiple language agents – OpenSkywalking community – CNCF OpenTracing – W3C Trace Context Spec – Zipkin <-> SkyWalking integration – OpenCensus – Sharding-Sphere

3.SkyWalking APM • Why create SkyWalking? • Where did the name come from?

4.SkyWalking APM • Why need auto instrumentation? • Most commercial APMs are AUTO

5.SkyWalking APM • Differences between APM and tracing

6.How does SkyWalking work?

7.Why still need manual Instrumentation • Instrumentation under conditions, to reduce performance payload • Controlled by developers, rather than APM • Across thread – Thread pool – Task assignment – Coroutine – Goroutine • Low level transports, TCP

8.Manual instrumentation APIs SkyWalking OpenTracing Manual Instrumentation Manual Instrumentation Library APIs

9.SkyWalking trace toolkit • Trace any method with only annotation required • Tag supported

10.OpenTracing APIs bridge // Business codes are here // If you want to trace this code block

11.How auto instrumentation works? • Running with Instrumentation, Pseudocode Only • Auto-instrumentation mechanism • AOP(Aspect Oriented Programming) in byte- code level. • Manipulate codes at runtime.

12.Manual instrumentation on agent Application codes Manual instrumentation APIs Tomcat Apache Middleware HttpComponent libs Business codes lib Lib weaver codes APIs bridge weaver Lib weaver codes Tracing core Tracing core context Tracing core context context Trace segment in single thread, part of distributed trace

13.APM from trace • Overview the whole cluster

14.APM from trace • Topology detected

15.APM from trace • Metrics of every application and its instance

16. APM from trace • Application Map • Application metrics • Application instances metrics • JVM metrics

17.APM from trace • Metrics of Rest and RPC services

18.Cool things in 5.x series • Native metric data support. Traces become optional • Zipkin -> SkyWalking collector -> visualization • OpenCensus -> SkyWalking reporter

19.SkyWalking community • GitHub – Java agent, collector, UI: – .NET Core agent: netcore – Node.js server side agent: • Gitter: • Mail list: