MAUIアプリでもオブザーバビリティを獲得したい

807 Views

September 30, 22

スライド概要

2022/09/30 「MAUI に注目する C# Tokyo イベント」での登壇資料。

profile-image

New Relic株式会社、Lead Technical Support Engineer.

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

MAUIアプリでも オブザーバビリティを 獲得したい 2022/09/30 #csharptokyo @tanaka̲733

2.

講師紹介 @tanaka̲733 New Relic K.K. Technical Support Manager C# Tokyo運営メンバーの一人です 好きな言語はC# コンテナとパブリッククラウドと量子コンピューターが好物 Microsoft MVP for Azure, Development Technologies Microsoft Certified Cloud Solution Architect Expert Certified Kubernetes Administrator/Application Developer (CKA/CKAD) ©2008–21 New Relic, Inc. All rights reserved 2

3.

オブザーバビリティとは アプリケーション(サービス)に問題が起きているか、なぜ起きているかを把握できる こと テレメトリーデータ=アプリケーションの状態を把握するためのデータ 新しい標準=OSSで広く使われるCNCFプロジェクト オブザーバビリティについては以前のC# Tokyoでのセッションでまとめました https://www.docswell.com/s/tanaka̲733/KY86DK-202109-observability-for-csharp-developers

4.

MAUIにおけるオブザーバビリティ ◦ クラッシュ率、エラー率などのユーザー快適度 ◦ クラッシュ時の操作履歴(BreadCrumbs)やログなどの調査情報 ◦ 利用回数などどの程度使われているか ◦ API通信などボトルネックになりやすい外部通信のパフォーマンス アプリの性質による重きをおくメトリクスは異なる ◦ モバイルアプリであれば、クラッシュ率が最重要 ◦ 業務用デスクトップアプリであれば、全体的な安定性など

5.

今、どんなツールが使えるのか (Xamarinで使えていた)App Centerは直接的には未対応 ◦ 当面、新機能追加の予定がないとロードマップに記載 https://github.com/Microsoft/appcenter/wiki/Roadmap OpenTelemetry .NET ◦ フロントエンドも対象にしているが進捗は遅め ◦ どんなことができそうか試してみました Sentry ◦ MAUI向けプレビュー機能あり(Microsoftから転職したエンジニアが開発した模様) ◦ https://sentry.io/for/dotnet-maui/ ◦ https://learn.microsoft.com/ja-jp/events/dotnetconf-focus-on-maui/error-monitoringfor-dotnet-maui-with-sentry

6.

サンプルアプリ 土台はMAUIのデフォルトプロジェクト。画面遷移などなし。 OpenTelemetryでの計測したものはGitHubで公開してます https://github.com/tanaka-takayoshi/opentelemetry-dotnetlab/tree/main/examples/maui Sentryの方はデモプログラムを編集しました https://github.com/getsentry/sentrydotnet/tree/main/samples/Sentry.Samples.Maui

7.

MAUIでOpenTelemetry .NET 用意されているAPIを使って一から手動で計装していく ◦ 外部通信部分などでトレースを計装 ◦ ログ ◦ メトリクス 実装上の注意点 ◦ アプリからオブザーバビリティバックエンドに直接テレメトリーを送信するため、 アプリからの通信を許可しないといけない ◦ 特にモバイルアプリでは、データ送信失敗時のハンドリングが必要 所感 ◦ クラッシュレポートとBreadCrumbsがすぐに利用できないのは使いづらい

8.

処理のレスポンスタイムとスループット

9.

ログ

10.

サーバー(API)のパフォーマンス

11.

サーバー(API)のパフォーマンス

12.

例外の発生した処理

13.

Sentryを試してみる

14.

例外キャプチャ

15.

Breadcrumbs

16.

トレース

17.

Thank you.