Programové chyby jsou nevyhnutelné. Nikdo nerozumí každému jednotlivému řádku frameworku nebo operačního systému. Operační systém nemůže ovlivnit úroveň nabití baterie ani přetížení sítě. Dosažení vysoké dostupnosti je proces, ve kterém zpětná vazba hraje nenahraditelnou roli.
Není nic jednoduššího, než odeslat HTTP požadavek v případě vyhození výjimky a zalogovat jej na váš server. Alespoň v době jazyka C# 6.0, který podporuje await v bloku catch. Před touto velmi užitečnou funkcí bylo moudré používat nějakou analytickou službu. Application Insights ve službě Visual Studio Online byla velmi přínosná.
O něco později byla služba Application Insights přesunuta na nový portál Azure. Nechal bych to bez komentáře, pokud by byl zachován hierarchický strom událostí. V názvu události můžete použít lomítko a název před lomítkem se použije pro seskupení událostí. Tato funkce je nyní zastaralá.
O další dobu později společnost Microsoft koupila společnost HockeyApp. Důvodem bylo, že Microsoft používal HockeyApp s mnoha interně vyvinutými aplikacemi. Bylo levnější získat HockeyApp než investovat do interního Application Insights.
Po akvizici byli všichni zákazníci Application Insights nuceni přejít na HockeyApp. Změna měřicích kódů nebyla nutná, ale každý vývojář ví, že nepodporované znamená mrtvé, takže změna je jen otázkou času. Nikdo by stejně nečekal plnohodnotnou analytiku HockeyApp.
Identifikoval jsem dvě hlavní nevýhody HockeyApp ve srovnání s Application Insights. Po dvou letech integrace HockeyApp jsou stále přítomny a nevyřešeny (dostatečně).
Prvním problémem je, že ne všechny zpracované výjimky mohou být hlášeny. Pády jsou hlášeny úplně jiným systémem. Údaje o pádech jsou k dispozici na webu Dev Center, ale dvě třetiny z nich jsou popsány jako Unknown, i když je poskytnut soubor program debug database.
Druhým problémem je, že zpracované a neošetřené výjimky nelze od sebe odlišit. Nahrávání souboru program debug database odděleně od odeslání aplikace Dev Center je nepohodlné. Zpracované výjimky mohou být hlášeny jako události, aby se odlišily, ale není možné umístit další informace do vlastností události (ve skutečnosti je můžete, ale neuvidíte je na portálu). Všechny informace musí být umístěny do názvu události, ale v současné době je limit 300 jedinečných názvů událostí na aplikaci za týden.
Naštěstí je k dispozici zbrusu nový náhled diagnostiky Application Insights. Můžete si zde prohlédnout podrobnosti o událostech, ale zatím to vypadá, že tato služba je orientována výhradně na webové aplikace. Mezitím společnost Microsoft vydala sadu Windows SDK pro Google Analytics. Pokud používáte Google Analytics, musíte Googlu zaplatit za přístup k vlastním datům, protože vám poskytují pouze vzorek.
Nebudu zde uvádět žádná kvalifikovaná doporučení, protože nevím o ničem jednoduchém, plně funkčním a dostatečně zavedeném. Doposud jsem se o posmrtné ladění zajímal 8 let a vždy to byla tvrdá práce.