Badoo . Badoo Bumble, - ( ), (Android iOS), UI. Gelat. Error Tracking .
, , , , .
:
, , , .
, ;
, , .
β . , , , , .
β . Badoo :
β -: - , ;
β : ( , App Store Google Play).
. - , , .
. , , QA-.
Badoo : HockeyApp - JS-.
HockeyApp
HockeyApp , 2014 Microsoft , App Center. App Center : , , - Android- DexGuard mapping-, . ; , , - .
Microsoft β 16 2019 , HockeyApp App Center. , DexGuard App Center 2019 , HockeyApp.
HockeyApp. Microsoft HockeyApp, , . .
JS-
JS-, , .
:
MySQL ( 10β20 );
;
MySQL, Sphinx .
2017 -. β . - , - , - , .
, , . , 2014 , , .
, .
.
. (, ) . , .
. , . .
β .
Β« ?Β», Β« ?Β».
- ( , , . .).
.
: , , , . .
Jira. Jira, .
Self-hosted. , . .
, , .
SaaS-, : β . Bugsnag, TrackJS, Raygun, Rollbar Airbrake. , : , , HockeyApp. β .
Open-source-
open-source- . , .
Sentry , . ( 2018 ) :
;
PostgreSQL, ;
, Python, β PHP Go;
(, Jira).
2018 Sentry, issue- , , β ClickHouse ( ). , . , , , .
Gelato (General Error Logs And The Others), .
, , , , , , . : , , , .
.
, .
, .
, , , , . Jira .
:
, .
(1), (2) (3).
, .
, , β . , , , , - ().
:
, :
, , . , , :
A/B- β , -;
;
( );
email- .
, . :
.
.
.
:
.
, , , β API .
API:
;
, «» ( « », «» API);
.
?
, EPS (errors per second), , , .
- , . . , , , EPS ( iOS Facebook SDK 10 2020 ). , , .
, , β . : , - β , .
, ( ), , .
?
Apache Kafka, , (, - ). Kafka () Sentry.
LSD (Live Streaming Daemon). , . Badoo , .
: Β« ?Β» ( ) Β« ?Β» ( ).
: Elasticsearch ClickHouse.
Elasticsearch
:
;
, ;
;
UPDATE ( , , , );
DELETE ( , , );
API, .
, , Elasticsearch :
, ( SQL, (X-Pack) Open Distro Amazon);
; , , (, deflate- LZ4, CPU, ).
ClickHouse
:
;
, ;
MySQL- , , Elasticsearch;
, Elasticsearch.
2018 ClickHouse :
DELETE ( , ; ClickHouse , ( β ) );
UPDATE : ClickHouse , β ( GitHub β 2018 , );
( RegExp, (full scan), ).
, Elasticsearch ClickHouse, . . , Elasticsearch, , β .
, .
:
-;
.
( ) β . , warm- ( hot-warm-cold-).
JS-, - , , ( , , , ). , , attributes .
Sentry . Sentry , tags , , extra β .
, , β . , , , , - . β .
.
- Android-
, Android- , :
(code shrinking β );
, (optimization β );
, , , - (obfuscation β ).
:
ProGuard ( );
DexGuard ProGuard ( );
R8 Google.
, - :
o.imc: Error loading resources: Security check required
ββat o.mef.b(:77)
ββat o.mef.e(:23)
ββat o.mef$a.d(:61)
ββat o.mef$a.invoke(:23)
ββat o.jij$c.a(:42)
ββat o.jij$c.apply(Unknown Source:0)
ββat o.wgv$c.a_(:81)
ββat o.whb$e.a_(:64)
ββat o.wgs$b$a.a_(:111)
ββat o.wgy$b.run(:81)
ββat o.vxu$e.run(:109)
ββat android.os.Handler.handleCallback(Handler.java:790)
ββat android.os.Handler.dispatchMessage(Handler.java:99)
ββat android.os.Looper.loop(Looper.java:164)
ββat android.app.ActivityThread.main(ActivityThread.java:6626)
ββat java.lang.reflect.Method.invoke(Native Method)
ββat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
ββat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
, . -, . , mapping.txt, . :
AllGoalsDialogFragment -> o.a:
java.util.LinkedHashMap goals -> c
kotlin.jvm.functions.Function1 onGoalSelected -> e
java.lang.String selectedId -> d
AllGoalsDialogFragment$Companion Companion -> a
54:73:android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) -> onCreateView
76:76:int getTheme() -> getTheme
79:85:android.app.Dialog onCreateDialog(android.os.Bundle) -> onCreateDialog
93:97:void onDestroyView() -> onDestroyView
, , mapping- β -.
(, , ), , , ProGuard ( DexGuard ) ReTrace, .
Android- Kotlin, :
- ;
mapping- Ceph ( TeamCity);
-.
- iOS-
Thread 0:
0 libsystem_kernel.dylib 0x00000001bf3468b8 0x1bf321000 + 153784
1 libobjc.A.dylib 0x00000001bf289de0 0x1bf270000 + 105952
2 Badoo 0x0000000105c9c6f4 0x1047ec000 + 21694196
3 Badoo 0x000000010657660c 0x1047ec000 + 30975500
4 Badoo 0x0000000106524e04 0x1047ec000 + 30641668
5 Badoo 0x000000010652b0f8 0x1047ec000 + 30667000
6 Badoo 0x0000000105dce27c 0x1047ec000 + 22946428
7 Badoo 0x0000000105dce3b4 0x1047ec000 + 22946740
8 Badoo 0x0000000104d41340 0x1047ec000 + 5591872
. -, - (dSYM), , , .
?
Symbolicator Sentry, ( , ). - , as is : , Rust .
Symbolic Sentry, , Rust, C-ABI β FFI.
Golang , Symbolic cgo.
, , β . , .
, , , , - . (fingerprint), . -. , , ( ).
:
JS- message, type origin;
Android - - ( );
iOS - (, crashed -).
, .
, Sentry, .
, , .
, :
: , ;
;
, ;
iOS - β , Symbolicator;
: ;
.