package Ġcom . mal in sk iy . mar athon . analytics . external . graph ite Ċ Ċ import Ġcom . mal in sk iy . mar athon . analytics . internal . sub . Test Event Ċ import Ġcom . mal in sk iy . mar athon . analytics . internal . sub . Tracker Internal Adapter Ċ import Ġcom . mal in sk iy . mar athon . device . DeviceInfo Ċ import Ġcom . mal in sk iy . mar athon . execution . Test Status Ċ import Ġcom . mal in sk iy . mar athon . test . Test Ċ import Ġcom . mal in sk iy . mar athon . test . to Safe Test Name Ċ Ċ class ĠGraph ite Tracker ( ĊĠĠĠ Ġprivate Ġval Ġgraph ite : ĠGraph ite Client Ċ ) Ġ: ĠTracker Internal Adapter () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġtrack Test ( event : ĠTest Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . test Result . status Ġin ĠarrayOf ( Test Status . FAILURE , ĠTest Status . PAS SED )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Result Ġ= Ġevent . test Result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Ġ= Ġevent . device ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbase Metric Name Ġ= Ġget Base Metric Name ( test Result . test , Ġdevice ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtimestamp Ġ= Ġevent . instant . to Epoch Milli () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgraph ite . send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGraph ite Metric ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ base Metric Name . ignored ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( test Result . is Ignored ) Ġ" 1 " Ġelse Ġ" 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGraph ite Metric ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ base Metric Name . success ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( test Result . status Ġ== ĠTest Status . PAS SED ) Ġ" 1 " Ġelse Ġ" 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGraph ite Metric ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ base Metric Name . duration ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Result . duration Millis (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Base Metric Name ( test : ĠTest , Ġdevice : ĠDevice Info ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Name Ġ= Ġtest . to Safe Test Name (). replace Dot s () ĊĠĠĠĠĠĠĠ Ġval Ġtest Package Ġ= Ġtest . pkg . replace Dot s () ĊĠĠĠĠĠĠĠ Ġreturn Ġ" tests .$ test Name .$ test Package .${ test . clazz }.${ test . method }.${ device . safe SerialNumber }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠString . replace Dot s () Ġ= Ġreplace (".", Ġ"-- ") Ċ } Ċ