Upload
university-of-moratuwa
View
423
Download
1
Embed Size (px)
Citation preview
Apache PhoenixTracing Web App
Distributed Tracing and Zipkin WorkshopOctober 5th 2015
About MeI’m an undergraduate student at
University of Moratuwa, Sri Lanka.
Project Engineer at LK Domain Registry.
I created the Phoenix Web App for GSoC 2015.
Worked with Open-source & Apache ~ 2 years ago
AgendaWhat is PhoenixWhy we need TracingMain Functions in Web AppChallenges facedNew Issues raisedRoadmapQ&A
Introduction to Apache PhoenixConverting HBase into SQL databaseFastest to Access HBase dataLightweight
◦Copy Phoenix jar into HBaseIntegration-friendly
◦Apache Pig◦Apache Flume◦Apache Sqoop◦Apache Spark
Current CapabilitiesSupport common SQL Data TypesInserts and UpdatesSELECT, DISTINCT, GROUP BY,
HAVINGNOT NULL & Primary key
ConstraintsInner and Outer JoinsViews
Future CapabilitiesTransaction Support. Integrating with
Tephra- Transactions for Apache HBaseJSON SupportMonitoring and Management
Improvements https://issues.apache.org/jira/browse/PHOENIX-1121
Cost-based Query Optimization. https://issues.apache.org/jira/browse/PHOENIX-1177
Why we need TracingBetter query analysis.Performance issues with total
system or individual queries.Full stack view when
investigating performance.Top 10 queries that take the
longest amount of time in production.
Dependencies and parallel query executions.
Features of the Tracing Web Apphttps://github.com/apache/phoeni
x master branch
Launching script in pythonBack-end – exposing tracing
table data as rest (json format)Front-end – Web App in HTML5 &
AngularJS with charting (Google Charts)
Five Main FeaturesListTrace Count DistributionTrace Distribution on hostsTraces
◦Dependency Tree◦Timeline
ListThe most recent traces are listed
down.The limiting value entered on the
textbox (the trace count displayed)
With each trace a link is there to view the dependency tree and the timeline.
Trace Count Distribution Trace count is listed by distribution. Chart types
◦ Pie Charts◦ Area Charts◦ Bar Charts◦ Line Charts
Trace Distribution by HostsShows the traces across phoenix hosts on which
they are running.The charts used are pie charts, line charts, bar
charts and area charts.The chart changing option is collapsible and could
be hidden.Could take decisions on loading on the hosts that
run phoenix.
59%23%
10%9%
Trace Distribution by Hosts1st Host2nd Host3rd Host4th Host
Dependency TreeViews traces belonging to a trace idTree viewThe tooltip gives the host name, parent id, span
id, start time, end time, description and duration.nodes are collapsible and expandable
Timeline The traces can be viewed along the time axis for a given
trace id. Traces can be added or cleared from the timeline. There should be a minimum of two traces starting at two
different times for the system to draw its timeline. Helps the user to easily compare execution times between
traces and within the same trace.
Programming ChallengesVisualization techniques
evaluation.Choosing a charting library that
caters for all the visualization requirements.
A wide dependency tree was drawn for a sample data set. Collapsible feature was introduced to tree view to resolve this.
Mapping the trace ids with the SQL query which spans them.
New Issues Createdhttps://issues.apache.org/jira/browse/PHOE
NIX-2208 (Navigation to trace information in tracing UI needs to be driven off of query instead of trace ID)
https://issues.apache.org/jira/browse/PHOENIX-2219 (Create a page which under the covers turn on tracing, run a specified SQL, get its trace id and then plot the relevant chart, turn off tracing)
https://issues.apache.org/jira/browse/PHOENIX-2218 (List page should display last x number of top level traces)
RoadmapApache PhoenixImportance of TracingTracing Web AppEncountered Issues & ChallengesNewly Created Issues
Questions