+420 603 755 610
info@inited.cz
flagEnglish (Angličtina)
flagČeština
INITED Solutions s.r.o.
  • Domů
  • Služby
    • Vývoj mobilních aplikací
    • Záchrana projektů
    • Konzultace
    • Provoz a rozvoj mobilních aplikací
  • Pro agentury
  • Ukázky naší práce
  • Blog
  • Kontakt

Sentry – nástroj pro sledování chyb

25.12.2021Jaroslav Pavlíček

Sentry používáme k odchytávání chyb v mobilních aplikacích a backendech. Díky tomu dokážeme rozlišit seriózní situace od falešných poplachů, poznáme, kdy k chybě došlo díky nové aktualizaci systému nebo díky nedostatku místa v úložišti či nekvalitnímu internetovému připojení. Předností nástroje Sentry je jeho široký záběr, kdy dokáže pohlídat různé platformy a různé typy aplikací: nativní, hybridní, webové i backendy v Javě nebo PHP.

Nástroj je možné provozovat on premise (na vlastních serverech) nebo využít SaaS (software as a service) v cloudu. Cloudová varianta nabízí bezplatnou variantu, která je vhodná pro menší projekty, limitujícím faktorem je zde maximální počet 3 uživatelů.

Pro fungování je třeba nastavit parametry projektů v administraci a vložit do mobilní aplikace agenta, který chyby sbírá a odesílá na server. Jednorázové nasazení je otázka jednotek hodin, zapojení do CI je náročnější.

Přímými uživateli nástroje Sentry jsou nejen vývojáři, ale především project owneři nebo manažeři zodpovědní za kvalitu produktu.

Následuje představení nástroje:

Úvodní dashboard

Úvodní dashboard zobrazí přehled projektů. Na obrázku stojí za povšimnutí:

  • projekty jsou různých typů (ikona vlevo): backend v NestJS, mobilní aplikace v Cordova, Ionic, nativní Android, nativní iOS, backend v PHP
  • u mobilních aplikací sleduje Crash Free Sessions
  • napojení na CI, sledování verzí nasazených do produkce a do testu
  • u projektu vpravo nahoře přiřazené vývojáře, kteří jsou o výskytu chyby informováni
Sentry - dashboard

Sentry – dashboard s přehledem projeků

Integrace s gitem, CI

Integrace s gitem v rámci CI je určitě nutnost. Bohužel ne vždy vše funguje na první pokus, ne všechno funguje podle návodu tak, jak má. Nastavení si vezme svůj čas. Ale výsledek v dlouhodobém horizontu stojí za to.

Na počátku projektu je třeba:

  • založit projekt,
  • nastavit přístup do gitu,
  • vložit do kódu agenta / knihovnu
  • nastavit automatické vkládání identifikátorů v průběhu buildu

Při každém buildu:

  • vytvořit v Sentry novou verzi
  • odeslat do Sentry source maps (při vývoji mobilních aplikací)
  • vložit do kódu ID projektu a verze

Následující screenshot ukazuje evidenci jednotlivých verzí:

Sentry - verze

Sentry – přehled verzí, jejich rozšíření a chybovosti

Evidence chyb

Detailně se chyba eviduje při prvním výskytu. Při dalších výskytech už se zaznamená pouze „+1“. Při zpracování je možné nastavit filtry a automatická pravidla. Defaultně jsou o prvním výskytu informováni přiřazení vývojáři.

Sentry nabízí možnost nastavovat příznaky (nová, v řešení, vyřešeno, ignoruje se) a přiřazovat zodpovědné řešitele.

Screenshot seznamu chyb:

Sentry - chyby

Sentry – seznam evidovaných chyb a jejich dopadů

Detail chyby

Sentry zobrazí kontext, ve kterém chyba vznikla:

Kontext chyby v Sentry

Sentry – kontext zaznamenané chyby

Zobrazí místo v kódu, kde k chybě došlo. Při vývoji mobilních aplikací v typescriptu je třeba do Sentru provést upload source map. Jinak Sentry zdrojový kód nezobrazí správně.

Sentry - stacktrace

Sentry – zobrazení stacktrace, místa, kde k chybě došlo

Detail requestu:

Request, který chybu vyvolal

Sentry – detail požadavku, který chybu vyvolal

Zajímavá je identifikace commitu, kterým byla chyba do aplikace vnesena:

Commit, který chybu přinesl

Sentry – informace o commitu, který chybu do aplikace pravděpodobně vnesl

Na co si dát pozor – přečerpání kvót a filtrování

Zkušenost ukazuje, že je dobré dávat Sentry do mobilní aplikace co nejdříve a používat ho už ve fázi interního testování. To s sebou nese určitá rizika.

Následující kód

Opakuj každých 10 sekund:
    otevři soubor /tmp/soubor
    zpracuj soubor
    smaž soubor

v případě, že soubor neexistuje a chyba není ošetřena, vygeneruje do Sentry 6 chyb za minutu, 60 chyb za deset minut, 360 chyb za hodinu, … Na jednom zařízení. Přes víkend není těžké vyčerpat v Sentry kvóty na měsíc. V případě, kdy je aplikace mezi testery v terénu, není snadné urychleně ukončit její používání. Bohužel nastavení inbound filtrů, které by tato hlášení odfiltrovaly, je možné až od plánu „business“.

Výsledkem je prakticky měsíční výpadek a čekání na nové kvóty:

Sentry overflow

Přečerpání kvót v Sentry

Oprávnění, přístupy a citlivá data

Přístupy je možné sdílet v rámci nadefinovaného projektového týmu. Toto je možné pouze od plánu „team“, který je placený. Při vývoji mobilní aplikace formou subdodávky je možné projekt v Sentry založit a následně předat přístupy klientovi.

Ve výchozím nastavení Sentry filtruje potenciálně citlivé údaje – hesla, čísla kreditních karet – a nezaznamenává je. Rozpoznání má omezenou míru spolehlivosti a ve výchozím nastavení filtruje raději více než méně. Pak se může stát, že poskytnuté informace nemají valný přínos. Úroveň je možné v administraci upravit.

Závěr

Sentry patří k „must have“ nástrojům vývojáře mobilních aplikací. Za svoji cenu (nastavení v aplikaci) přináší velké množství užitečných informací, které pomáhají zvýšit kvalitu. Díky cloudové verzi zdarma je k dispozici i pro malé týmy a startupy.

Jaroslav Pavlíček
Jaroslav je certifikovaný architekt (TOGAF) s 25+ lety praxe v IT. Díky tomu mají naše mobilní aplikace vysokou technickou úroveň a jsou postavené na spolehlivých technologiích. Své zkušenosti získával na projektech v zahraničí (Velká Británie, Malta) a vedle INITED působí jako konzultant Adobe Experience Manager, AEM.
Předchozí článek Jak vypadá úspěšná mobilní aplikace Další článek V čem programovat mobilní aplikace v roce 2022

Related Articles

Co obsahují Google Analytics mobilní aplikace

30.12.2021Jaroslav Pavlíček

Kategorie článků

  • Marketing a prodej (26)
  • Mobilní aplikace (47)
  • Mobilní telefony a HW/Ostatní (13)
  • Ostatní (13)
  • Top (5)
  • Trendy (39)
  • Z naší dílny (20)

Přečtěte si také

  • Jana Marková: Mobilní, nebo webová aplikace? Někdy je nejlepší mít obě
  • Apple umožňuje publikovat aplikace v alternativních obchodech. Jaké jsou podmínky?
  • Od nápadu na aplikaci k dokonalému projektu: 6 kroků, které musíte ujít
  • 6 rozdílů mezi ASO pro App Store a pro Google Play
  • Hodinová sazba za vývoj mobilní aplikace: jak se liší u freelancerů a agentur
  • Cena vývoje mobilní aplikace 2024
  • Co jsou widgety a proč se vyplatí i vaší aplikaci
  • Chcete, aby vaše aplikace zůstala na Google Play? Musíte ji aktualizovat!
  • 7 trendů ve vývoji mobilních aplikací pro rok 2024
  • Povinné ověření účtů vývojářů na Google Play
  • Jak funguje našich 6 etap vývoje mobilních aplikací
  • Nebuďte součástí hloupých předsudků a pověr! Můžete tím přijít o peníze i o zákazníky
  • Máte aktuální API? Bez ní vás někteří uživatelé v Google Play nenajdou
  • UX mobilní aplikace: 3 věci, na které musíte myslet
  • AI na vlastní kůži: Jak vypadá aplikace s texty od ChatGPT
  • Proč je práce z domova okolím vnímána jako podřadnější než práce v kanceláři?
  • 3 největší novinky, které přinese Google Pixel 8
  • 6 technologií, které vylepší vaši aplikaci
  • 5 tipů, jak využít umělou inteligenci v mobilní aplikaci
  • 7 nejčastějších chyb, které firmy dělají v ASO

Ahoj 123

blablabl

  • Domů
  • Služby
  • Pro agentury
  • Ukázky naší práce
  • Blog
  • Náš tým
  • Kontakt
© 2023 Created by Provocado
Na tomto webu používáme cookies
Cookies nám pomáhají vidět realitu - co návštěvníky zajímá, co čtou a co naopak přeskakují. Používáme Google Analytics, Google Fonts aYouTube. Více o cookies, najdete v dokumentu níže.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage vendors Read more about these purposes
Předvolby
{title} {title} {title}