Download PDF
Download page .NET MAUI アプリケーションのインストゥルメント化.
.NET MAUI アプリケーションのインストゥルメント化
.NET MAUI アプリケーションをモニターするには、アプリケーションをインストゥルメント化して、.NET MAUI エージェントがモバイルメトリックを収集できるようにする必要があります。
アプリケーションをインストゥルメント化するには、次のセクションを参照してください。
MAUI エージェントサポートの確認
MAUI エージェントは以下をサポートします。
- プラットフォーム:
- iOS
- Android
- ライブラリ:
- net6.0-ios(
AppDynamics.Agent.MAUI
またはAppDynamics.Agent
バージョン 2022.9.0 以降) - net6.0-android(
AppDynamics.Agent.MAUI
またはAppDynamics.Agent
バージョン 2022.9.0 以降)
- net6.0-ios(
- .NET バージョン 6 以降
制限事項
MAUI エージェントには、クラッシュデータが報告される対象に次の制限があります。
- Reported:管理対象のクラッシュ - .NET ランタイムで発生するクラッシュ)。
- Not reported:ネイティブクラッシュ - Objective-C ランタイムで発生するクラッシュ
MAUI エージェント インストゥルメンテーション パッケージの選択
MAUI エージェントは、.NET MAUI アプリケーションに追加するインストゥルメンテーション パッケージです。アプリケーションのニーズに応じて、次のインストゥルメンテーション パッケージのいずれかを選択します。
AppDynamics.Agent.MAUI
には、iOS および Android アプリケーションのインストゥルメンテーション、および MAUI UI 要素のインストゥルメンテーションが含まれます。AppDynamics.Agent
には iOS および Android アプリケーションのインストゥルメンテーションが含まれますが、MAUI の依存関係はありません。
Maui エージェントパッケージの追加
NuGet ギャラリーからアプリケーションに MAUI エージェントパッケージを追加するには、Visual Studio にパッケージをインストールして使用する手順を参照してください。
アプリケーションへの初期化コードの追加
アプリケーションに初期化コードを追加するには、MauiAppBuilder の MauiProgram
の CreateMauiApp()
内で UseAppDymamics()
を呼び出します。
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseAppDynamics();
return builder.Build();
}
EUM アプリケーションキーの取得
EUM アプリケーションキーは、エンドユーザーデータを特定のエンドユーザー モニタリング アプリケーションに関連付けるために使用される一意の識別子です。各 .NET MAUI アプリケーションは、通常、1 つの EUM アプリケーションキーに関連付けられます。アプリケーションをモニターするには、EUM アプリケーションキーを MAUI エージェント インストゥルメンテーション パッケージに追加する必要があります。
コントローラで EUM アプリケーションキーを取得するには、次の手順を実行します。
- User Experience に進みます。
- [Mobile Apps] タブで、[Add App > Cross Platform] をクリックします。
- ステップ 1 で、モバイル アプリケーション グループを選択します。
- ステップ 2 で、Xamarin フレームワークを選択します。
[Getting Started Wizard] を完了したが、EUM アプリケーションキーを持っていない場合は、「アプリケーションキーの取得」を参照してください。
(Android のみ)必要なアクセス許可の追加
Android アプリケーションの Properties/AndroidManifest.xml
ファイルで、次のアクセス許可を確認します(存在しない場合は追加します)。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
エージェントの初期化
アプリケーションのタイプに応じて、エージェントを初期化する 2 つのオプションがあります。
クロスプラットフォーム アプリケーションの場合:次の初期化コードを App.xaml.cs ファイルに追加します。これは、クロスプラットフォーム アプリケーション(iOS と Android の両方)で使用できます。
public App() { InitializeComponent(); // This initialization code is used by both iOS and Android apps. var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>); AppDynamics.Agent.Instrumentation.InitWithConfiguration(config); MainPage = new MainPage(); }
C#- ネイティブアプリケーションの場合:
iOS:アプリケーションの AppDelegate の FinishedLaunching メソッドに次の初期化コードを追加します。
public class AppDelegate : UIApplicationDelegate { ... public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { // The two lines below initialize the AppDynamics instrumentation. var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>); AppDynamics.Agent.Instrumentation.InitWithConfiguration(config); ... return true; } ... }
CODEAndroid:アプリケーションの MainActivity OnCreate メソッドの下に次の初期化コードを追加します。
class MainActivity { protected override void OnCreate(Bundle savedInstanceState) { // The two lines below initialize the AppDynamics instrumentation. var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>); AppDynamics.Agent.Instrumentation.InitWithConfiguration(config); ... } }
CODE
(オプション)オンプレミス EUM サーバーへのポイント
オンプレミス EUM サーバーを使用するには、EUM アプリケーションキーを使用してインストゥルメンテーションを初期化するときに、オンプレミス EUM サーバーに URL を渡します。
var config = AppDynamics.Agent.AgentConfiguration.Create(<EUM_APP_KEY>);
config.CollectorURL = <COLLECTOR_URL:PORT>;
AppDynamics.Agent.Instrumentation.InitWithConfiguration(config);
地域ごとのオンプレミス EUM サーバー URL のリストについては、https://docs.appdynamics.com/paa/saas-domains-and-ip-ranges を参照してください。
アプリケーションの構築
Visual Studio からアプリケーションを実行して構築します。開始ウィザードから、アプリケーションが接続され、インストゥルメンテーションが検証されていることがわかります。
(iOS のみ)追加の引数の追加
iOS アプリケーションの場合、ランタイムエラーを回避するために、simulator
構成に追加の MtouchExtraArgs
--registrar:static
を追加する必要があります。これは、すでに物理デバイスのデフォルトです。MAUI プロジェクトに次の引数を追加します。
<PropertyGroup Condition="$(TargetFramework.Contains('-ios'))">
<MTouchExtraArgs>--registrar:static</MTouchExtraArgs>
</PropertyGroup>
(オプション)自動インストゥルメンテーションの有効化
MAUI エージェントを設定すると、固有のインストゥルメンテーション コードをプロジェクトに自動的に挿入できます。AppDynamics.Agent.AutoInstrument.Fody
という名前の別のベータ版 NuGet パッケージを使用して実現できます。
自動インストゥルメンテーションにより、次のことが可能になります。
Automatic Instrumentation
パッケージのセットアップ
自動インストゥルメンテーション パッケージ AppDynamics.Agent.AutoInstrument.Fody
を設定する前に、上記のエージェント インストゥルメンテーションの設定を完了し、プロジェクトに AppDynamics.Agent
または AppDynamics.Agent.MAUI
パッケージを追加していることを確認してください。
AppDynamics.Agent.AutoInstrument.Fody
パッケージを追加します。AppDynamics.Agent.AutoInstrument.Fody
ベータ版パッケージをインストールするには、[Include prereleases] オプションをオンにして、このバージョンが表示されるようにします。- ソリューションを構築します。
ソリューションを構築すると、次の 2 つのファイルが自動的に生成されます。
FodyWeavers.xml
FodyWeavers.xsd
これらのファイルはソース管理にチェックインする必要があります。
上記のファイルが自動的に生成されない場合は、次の内容を持つ
FodyWeavers.xml
という名前の新しいファイルを手動で作成する必要があります。<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> <AppDynamics.Agent.AutoInstrument/> </Weavers>
C#プロジェクトですでに
Fody
が使用されている場合、これらのファイルはすでにそこにあり、AppDynamics.Agent.AutoInstrument
ウィーバを含むようにFodyWeavers.xml
ファイルを更新するだけで済みます。次に例を示します。
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> ... Existing weavers ... <AppDynamics.Agent.AutoInstrument/> </Weavers>
C#
(オプション)インストゥルメンテーションのカスタマイズ
MAUI SDK を使用して、MAUI エージェントのインストゥルメンテーションをさらにカスタマイズできます。SDK には追加のクラスがあり、収集して Splunk AppDynamics に報告できるアプリケーションデータの種類を拡張できます。「MAUI インストゥルメンテーションのカスタマイズ」を参照してください。