splunkingyour mobile apps - .conf19 | splunk · introducing splunk for mobile intelligence (splunk...
Post on 22-May-2020
39 Views
Preview:
TRANSCRIPT
Copyright©2016Splunk Inc.
BillEmmettDirector,SolutionsMarketing,Splunk
JonVlachogiannisDirector,Engineering,Splunk
Splunking YourMobileApps
Disclaimer
2
Duringthecourseofthispresentation,wemaymakeforwardlookingstatementsregardingfutureeventsortheexpectedperformanceofthecompany.Wecautionyouthatsuchstatementsreflectourcurrentexpectationsandestimatesbasedonfactorscurrentlyknowntousandthatactualeventsorresultscoulddiffermaterially.Forimportantfactorsthatmaycauseactualresultstodifferfromthose
containedinourforward-lookingstatements,pleasereviewourfilingswiththeSEC.Theforward-lookingstatementsmadeinthethispresentationarebeingmadeasofthetimeanddateofitslivepresentation.Ifreviewedafteritslivepresentation,thispresentationmaynotcontaincurrentoraccurateinformation.Wedonotassumeanyobligationtoupdateanyforwardlookingstatementswemaymake.Inaddition,anyinformationaboutourroadmapoutlinesourgeneralproductdirectionandissubjecttochangeatanytimewithoutnotice.Itisforinformationalpurposesonlyandshallnot,beincorporatedintoanycontractorothercommitment.Splunkundertakesnoobligationeithertodevelopthefeaturesor
functionalitydescribedortoincludeanysuchfeatureorfunctionalityinafuturerelease.
Agenda
TheChallengesofMonitoringMobileAppsIntroducingSplunkforMobileIntelligence(SplunkMINT)DeployingSplunkMINT– IntrotoSDKs– GettingStarted
UsingSplunkMINT– Trackingapplicationquality&anduserengagement– “MixandMatch”otherdatasources
3
• NewOSversionsbreakapps
• Networkissuesaredifficulttofindandsimulate
• Limitedtimetomakechangesandfixes
TheChallengesofDeliveringMobileApps
4
• Planforgrowth
• Solveinfrastructure,APIandappissues
• Featureusage
• Monitor/analyzeuserbehavior
• Deliveromni-channelanalytics
• Mobile+web+desktop
FormFactor,Platform,InteractionStyle
Variety
RapidAppDev Cycles,Break-FixNeeds
Infrastructure Analytics
• OSanddevice-centricdevelopment
• Needtocorrelatedevices,versions
DifferentChallengesforDifferentRoles
5
• HowdoIfindtherootcauseofappcrashes/poorperformance?• Whatwereusersdoingwhentheissuehappened?• HowdoIgetmoreinsightintotransactionpaths?
• Istheproblemwiththeapp,thenetworkorthebackendsystem?• DoIhavetherightcapacityinplacetohandletransactionvolume?• Howdoesperformancecomparemobilevs.webvs.desktop?
• Howarecustomersusingmyapp?• WhichfeaturesshouldIprioritizeforfutureversions?• Howdoescustomerbehaviorcompareacrosschannels?
MOBILEAPPDEVELOPERS
PRODUCTMANAGERS/BUSINESSOWNERS
APPMANAGERS/OPERATIONS
SplunkforMobileIntelligence
DeliverBetterPerforming,MoreReliableApps
DeliverReal-TimeAnalytics
AchieveEnd-to-EndVisibility
SplunkMINTArchitecture
7
InstrumentappswithSplunkMINTSDKs
DatacanbedeliveredeitherviaSplunkMINTDataCollectorORHTTPEventCollector(HEC)
SplunkMINTappgivesyouaheadstartondashboardsanddatamodelformobiledata
iOSSDKNewFeatures
9
// Objective C - (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[Mint sharedInstance] initAndStartSessionWithHECUrl: url:@"HEC_URL" token:@"HEC_TOKEN"]; // ... return true;
}
HTTPEventCollectorSupport– FullOnPrem MINT!
BewarethoughthattheMINTSDKsshouldsenddatatoendpoint/services/collector/mint
iOSSDKNewFeatures
10
CustomTimers
Totrackinternalprocessesinyourmobileapp,youcancreateahigh-precisiontimerthatrunsonceandrecordstheelapsedtime,innanoseconds.Usethefollowingmethodstoworkwithtimers:
Tostartatimer,usethe startTimerWithName:method.Tostopatimer,usethe stopTimerWithId:method.
index=minttimerName=Timer1|statsavg(elapsedTime)byosVersion
IsthisfeaturefasteronthenewiOS?
iOSSDKNewFeatures
11
ViewMemoryWarnings
Whenamobileappreceivesmemorywarnings,theMINTSDKforiOSreportsmemoryinformationfortheViewController classthatreceivedthewarningusingthefollowingfields:• totalMemory• usedMemory• wiredMemory• activeMemory• inactiveMemory• freeMemory• purgableMemory
index=mintsourcetype="mint:memorywarning”|statscountbyappVersionName
DoIstillgetmemorywarningsinmynewrelease?
iOSSDKNewFeatures
12
TraceObjectiveCMethods
IfyouareusingObjective-C,youcanlogtraceinformationonspecificmethodsinyourcodetomeasureperformanceusingthefollowingmacros:
MINT_METHOD_TRACE_START:Startsthemethodtrace.
MINT_METHOD_TRACE_STOP:Stopsthemethodtrace.MINT_NONARC_METHOD_TRACE_STOP:Stopsthemethodtrace.UsethismacroifyouarenotusingARC.
index=mintsourcetype="mint:methodinvocation”|statsavg(elapsedTime)bymethod
Whataretheslowestmethodsinmyapp?
AndroidSDKNewFeatures
13
HTTPEventCollector– FullonPrem MINT!Mint.initAndStartSessionHEC(MyActivity.this,"HEC_MINT_endpoint_URL","YOUR_HEC_TOKEN");
index=mint
Showmemobiledata
BewarethoughthattheMINTSDKsshouldsenddatatoendpoint/services/collector/mint
applyplugin:'com.android.application'applyplugin:'com.splunk.mint.gradle.android.plugin'…buildscript {repositories{maven{url uri('mint-plugin-repo-5.1.0')
}//Willneedtoaddjcenter repoORmavenCentraljcenter()mavenCentral()...}dependencies{classpath 'com.splunk:mint-gradle-android-plugin:5.1.0'}
}
AndroidSDKNewFeatures
14
NewInstrumentation:CaptureallHTTPcalls
index=mintsourcetype=network
ShowmeALLnetworkdata
Bonus- OKHTTPsupport- HTTPMethods- Annotationarecoming!
AndroidSDKNewFeatures
15
CustomTimers
Stringtimer_id =Mint.timerStart("Timer1");
…
Mint.timerStop(timer_id);
index=minttimerName=Timer1|avg(elapsedTime)bybatteryLevel bins=10
IsthatcodeblockfasterwhenbatteryLevel higher?
AndroidSDKNewFeatures
16
TrackANRs– Ohyes!
Mint.startANRMonitoring(5000,true);
index=mintsourcetype=mint:error extraData.ANR=true|statscountbycurrentView
Inwhatscreendoesmyappstuck?
Androiddevicesdisplayan ApplicationNotResponding dialogbox,or ANR,whenanapplicationcannotrespondtouserinput.YoucanviewareportofANRswhentheyoccurinyourmobileapp.EnableANRreportingusingthefollowing startANRMonitoring(timeout, ignoreDebugger)method.Forexample:
StepsforGettingSplunkMINT
GettheSDKs– AndroidoriOS– Availableathttp://dev.splunk.com
Registerathttp://mint.splunk.comGetanAPIkey(oneforeachapp)http://mint.splunk.comGettheSplunkMINTappfromSplunkbaseUsethebundledEUMmoduleforSplunkITSI
19
SomeBestPracticestoRemember
MobileApps– getinsightnotonlyfromyour“backend”,butalsofromtheperspectiveoftheappEngagement– don’tjustfocusonperformancedata,lookatusagetrendsinyourmobileappTransactions– whatarethemostimportanttransactionscomingfromyourmobileapp?Correlations– usecorrelationstotietransactionstogether
20
top related