1.7K Views
September 30, 22
スライド概要
2022/09/30 「MAUI に注目する C# Tokyo イベント」での登壇資料。
New Relic株式会社、Technical Support Manager.
MAUIアプリでも オブザーバビリティを 獲得したい 2022/09/30 #csharptokyo @tanaka̲733
講師紹介 @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
オブザーバビリティとは アプリケーション(サービス)に問題が起きているか、なぜ起きているかを把握できる こと テレメトリーデータ=アプリケーションの状態を把握するためのデータ 新しい標準=OSSで広く使われるCNCFプロジェクト オブザーバビリティについては以前のC# Tokyoでのセッションでまとめました https://www.docswell.com/s/tanaka̲733/KY86DK-202109-observability-for-csharp-developers
MAUIにおけるオブザーバビリティ ◦ クラッシュ率、エラー率などのユーザー快適度 ◦ クラッシュ時の操作履歴(BreadCrumbs)やログなどの調査情報 ◦ 利用回数などどの程度使われているか ◦ API通信などボトルネックになりやすい外部通信のパフォーマンス アプリの性質による重きをおくメトリクスは異なる ◦ モバイルアプリであれば、クラッシュ率が最重要 ◦ 業務用デスクトップアプリであれば、全体的な安定性など
今、どんなツールが使えるのか (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
サンプルアプリ 土台は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
MAUIでOpenTelemetry .NET 用意されているAPIを使って一から手動で計装していく ◦ 外部通信部分などでトレースを計装 ◦ ログ ◦ メトリクス 実装上の注意点 ◦ アプリからオブザーバビリティバックエンドに直接テレメトリーを送信するため、 アプリからの通信を許可しないといけない ◦ 特にモバイルアプリでは、データ送信失敗時のハンドリングが必要 所感 ◦ クラッシュレポートとBreadCrumbsがすぐに利用できないのは使いづらい
処理のレスポンスタイムとスループット
ログ
サーバー(API)のパフォーマンス
サーバー(API)のパフォーマンス
例外の発生した処理
Sentryを試してみる
例外キャプチャ
Breadcrumbs
トレース
Thank you.