Trabalho em bugs. História verídica de mudança para o Sentry na escala de uma grande empresa de mercearia. Grigory Koshelev

Os erros são uma coisa interessante, porque até o título do relatório em si tem fundo duplo. Este é o trabalho sobre os erros que cometemos em nosso software, programas, serviços. E também trabalhar nos erros é criar um pipeline para lidar com tudo isso, para que tudo dê certo no final.







Sentry é uma ferramenta para monitorar exceções, erros em seus aplicativos.













– , Sentry. . : , .















2019-2020-.







, pipeline .













60 000 3 , 150 000 , 6 .













pipeline . , , , - . - Elastic. . . , .







, Elastic. . . , . Hercules. open source, GitHub .







– , Hercules .













Pipeline . Elastic Adapter , Elastic.







, Kafka. Kafka – , . daemon, Kafka Elastic.







, Elastic . Kibana, ??? ??? ( ).







pipeline . ?













pipeline , . daemons, , . . , , , . 15 .













? ?







– , , - , , , . .







Elastic, . Kibana , - Web, , Elastic, , . . .













?







  • -, , , Exception - stacktrace.
  • , exc_stacktrace_hash, .
  • Web , . . , . , - , . , .








hash, .













. , – Web, . . serverless-, . , .













pipeline , ?







, , Elastic Adapter. .













- , . . . .







.







, , . . , .







email. .













, – Web, .













?







  • -, . . , , . - .
  • -, , , .


? , , , Web. , . - , - .







. ? staging-, , - . , . staging-, , . , .













. .













, post mortem, - . . , . – 2 . – . , – 1 300 . , , . , . - , . , . , , - . , , :













2 . , . 24 . . . , .







, - , . . .













. . - . – . 2 . . 8 000 . , . , . - , . , . -, , , - . - . , , , - . . . . . , . . . , - .













https://habr.com/ru/company/ru_mts/blog/308044/







? . , .







Habr. ? . .







, . . , , . , , . ?













, . , . , 12 .







, , , open space. . . , , .







.













, , , , , 10-15 % . , , , . . .







, . staging, . , .













, post mortem – . , .







Sentry



, . . , - . , , Sentry, .













, Sentry, - . , Sentry – , . , . , , – , Sentry cloud’ Sentry. ? .







, , , . , Sentry. . , , . , . Sentry .







, - , , , , .













.







. , . pipeline Sentry , .







, . 13.51







, - , . . . - , , - . .







, - . , , -. Sentry, - . , - . - stacktrace. , Sentry . , . . .







, . . , . , . . , .







, . , , . , . 5 .













Sentry. , pipeline . , Sentry SDK.







, exception Sentry. . – , Sentry- fire-and-forget. ? , Sentry. , . - - - , , .







, , , , Sentry . .







– vendor lock. Sentry SDK, , , Sentry . - , , . - – .







? - – . , . . . . .







, , . , . , .







SDK, Sentry. , , Sentry. .













, , . . pipeline, Elastic.







Sentry.













, , , . ? . .







– . , . , Sentry, , .







, 3 , . :







  • Stacktrace,
  • Exception, . . exception, ,
  • Message, . . message, .


stacktrace - , . . 2 stacktraces , , , . .







, message. , messages ; messages , , .













. message, . ? - . – . - , . - . , . .













? , , , .







fingerprint. , , - , , .







? - hash, , .







, , , - . fingerprint . .













, , , .







, . . , , .







, , 500 – , - .













, , «-», , , . , Sentry .







1 000 Sentry, , , . . , Sentry , , , - .







: , ,



, .













pipeline? - ERROR FATAL.







, , , , .













– , - , , . . . , , . , . , .







. – + retry.













https://github.com/vostok/clusterclient.core/issues/7







? , . , . - URL. URL . - . - - . . , . . .







, , retry . . , Sentry . . , .













. , , .







. , , . 403 .







, . – . ?













– «» . «». , . , , token . error.













. , - - . . - .







, ? , - . , , , .













? , . . - . , - , - error.













. , error.







, , . API-, . backend. backend , , storage service.













storage- . , .













, , , . .













3 , , , , .













.







()



, .













– «» . , , , retry, . . , - . , , ?







– . – . , , , . . .







, , , . , . . , . , , - ? .













? , , . .







. USE- RED-. , , , . - ( ) , , , , - .







, – . , , . , .













– .







. , .







- , . .







?









. ?













, , ERROR WARNING , . , . , . . – .







. . , WARNING, . , . , , , , .













. . . , , , , . , , , . - , - , . – . . . . , . , . , . . , . , , , . . . . , , .









? , .







:



, . , , . . , ?







, - error, , , , . , - . .













, , errors - . . error. , . , - . - . - . - -. - . . 450 . , , , . . ERROR WARNING, .







, . , . , , , . , , , . , : « ? ?».













. , , , , , . . , , - , , .







, , , , . , - , .







, . . . , , . , , . , , . : «, ». : « ». .







, . , , , .







. , - , , - , , , , - .







, , - . , error budget. , .







.









?













, . Sentry, , . , , , .







, , .







, . 100 000 . , events . 300 . , , , , , 10. . .







. happy end. , :







  • , .







  • - . , - -.







  • , .









, legacy, 10 – ! , - . .









, ?













150 000 . pipeline Sentry – 100 000. , : INFO, WARNING, ERROR. . Sentry events ERROR FATAL 75 .













, , . team plan. Sentry – 26 . 50 000 . , . .







, 6 000 000 . + 820 . , . , .













. 75 . ? , , , , 200 000 000.







, , – 6 000 000. , , , . , .









. 75 – . .













, . , - , .







, - 3 300 000 . pipeline, , Sentry .







, - , .









. , , , , .









. . , , , .













, 10 . , 10 . , . , . , - - . , .







– , . 3 . , , . 3 , .







, . .







– , . - , , . Sentry. , , - , – - . .







, , . , -. .







? , .













Sentry . 4 , .







:







  • Slack,
  • ,
  • Telegram,
  • Pushover.


, .







, Slack Pushover. Slack - , Pushover , , .













: « , , ?». , , events, Sentry. ? -, . - , . , , , . - , graceful degradation , ?







, , . - staging, , , . , - Slack, , - - .







. , . : « ?». Sentry -, , .







Sentry , , . , , , - SLA .







, , . , , , . .







2019 2020



, , , , . . .













2019- : Moira .







Moira – . , , Telegram Slack. , Grafana. , . Kibana.







, , Kibana, - .







2020- ? Moira . - .







Sentry. , . . , , Sentry.







, , , .







2



– , Sentry – Sentry.













, . .







2019- , Sentry, 26 , post mortem.







, 3 post mortem, - , , .







3 , . . , Moira . , . .







1 . – , Kibana - . , .







, , . ? – , . – , . , , . , . .







, , Sentry. , , , Sentry. 9 19, , Sentry. , .













, . , . . , , . , .







19 . , . , .







5 . - , , . , .







6 . .







5 .







3 , . . Sentry.







. , .







, , . , Sentry , 10-15 % .







, Sentry, , .







, Sentry.







– 2 5. 6, , Sentry. , , Sentry. , , . . . . . , .









. . 2 - . ?













, , , , , . , , . , .







– , , , . . – , , . , , -, - -. .







, . . . , . . soft skills . , , - , , .







post mortems, . . , , . .













, Sentry , , – , Sentry. . . , .







Sentry. , Sentry. Hercules , .







Sentry. . . , .













. ! .







Q/A



: , , . , . ?







: , , . . . . – . .







: 247 , ? ?







: , , . , . . . , . , . , , . Pushover . . , .







: , - ?







: , . , Sentry. Sentry, , . . Sentry . , , . , , . , . , , , , , , 10 . , .







: , , error , ? . . 2 , error?







: . , . , , , . , , . , -, .







: , production , , , -. , , . ? - ?».







: . . - , - , - , - . , events - . , user ID, . , - , , , Slack-, - .







: , - , Sentry . ? - upstream-? , . . , . Sentry ?







: . Sentry . . ? Chrome, Sentry html, , . Sentry. , Chrome, . , , , , . . , - .







: ? ?







: , , . , — Hercules. , . , , -, . span, , . , - , community, . . , , , Elastic. . , . . , .







: , , . «Pushover», ?







: Pushover . , . Pushover. . .







() , PagerDuty android, , , . « », . iOS . , , , . , , - .







: , , ?







: , , , , , . , 80, . , . . , . . , , . , Pushover , .







: , ? , ?







: -. primary-, backup-. . - , : «, . , ». , . , . , . - – , , - .







: ? ?







: . , , . , . , - . . , . , . , .







() , , : 8 , 8 , 8 . – . , . . .







: , . ? . . ? ?







: , . , , . . ? , , - . .







? . . . . , error . - , error. error budget. . . , . , . , , , .







: . . . -, . - retry. , . , -, - tracking error budget. ? Hercules - Sentry ?







: , - – Sentry. , rules . , . . , , . , rule . . .







: . , , error, warning, info debug ?







: , , Sentry. , . , , . , , error, Sentry . , warning , Sentry . . .







: , Sentry, . - stacktrace, ?







: . -, 64 , Sentry. , . . , Sentry .







() stacktrace. . emp, . . , stack. , . , stack overflow error, stack. . .







: , , . , , log -. . , , , . , , , , , connection . . ? ?







: , , , . - , .







: , , . - - , , . . AssertionError – ?







: - , , . , , , – , — . , , , , , , .







() , , . : «, , : « ?»». , - , , , . , , 4 . .







() , , .







: . . , , - , , , ?







: . -, , - , . . . , - , , , . . , . . , - , . . . , .







, , , - . . , , . ? - .







() -, . .







: Sentry, . , , - . , , , CPU. - - ?







: , Moira. . - - , . . Graphite. Moira . Sentry – , . . Sentry . , . - . , - , - , .







. , . , . . , . . , 19- , 20- . . . endpoint . . -. .







, . ? -, stracktraces . , . Stracktaces – - . . stractraces . . , . - -. . . , : «, , , . , ». - Internet Explorer.







- Sentry








All Articles