Reactive Native エージェント

前提条件

  • react-native >= 0.65.0

アンドロイド

  • Android 5.0以上 - minSDK 21 以上
  • Android Gradle プラグイン - 4.2.0 以上
  • Gradle バージョン - 6.7.1 以上

IOS

  • Mac OS 10.15.7 以上
  • iOS 12 以上
  • X-Code 12.2 以上のダウンロードとインストール
  • cocoa pods をシステムにインストール

iOS と Android 用の SixthSense React Native の依存関係を追加する

以下のコマンドを実行して、適切なレジストリを設定・認証し、SixthSense の React Native 依存関係をダウンロードします。

npm config set @sixthsense:registry https://artifacts-observability.sixthsense.rakuten.com/api/v4/projects/36/packages/npm/
npm config set -- '//artifacts-observability.sixthsense.rakuten.com/api/v4/projects/36/packages/npm/:_authToken' "$AUTH_TOKEN"
npm install @sixthsense/react-native-sixthsense-react-native@1.0.0

アンドロイド

SixthSense モバイル監視 android SDK をインストールするには、build.gradle ファイルの dependencies ブロックに依存関係を追加します。

implementation("com.rakuten.sixthsense.observability:mobilemonitoring:1.2.0")

依存関係をダウンロードするには、repositories ブロックに以下の行を追加します。

repositories {
maven {
url "https://artifacts-observability.sixthsense.rakuten.com/api/v4/projects/21/packages/maven"
credentials(HttpHeaderCredentials) {
name = "Private-Token"
value = "Git_lab_access_token_here"
}
authentication {
header(HttpHeaderAuthentication)
}
}
}

設定は AndroidManifest.xml ファイルで行います。

  1. アプリケーションタグで、アクセストークンを設定します。
<meta-data android:name="com.rakuten.sixthsense.ACCESS_TOKEN"
android:value="access-token-here"/>

アクセストークンは SixthSense ダッシュボードに表示されます。[設定] > [一般] > [アクセストークン]

  1. 同様にレポートのベース URL を設定します。
<meta-data android:name= "com.rakuten.sixthsense.BASE_URL"
android:value="https://http-collector-observability.sixthsense.rakuten.com/mobile"/>

OneCloud Platformの場合は、以下のコマンドを使用します:

<meta-data android:name= "com.rakuten.sixthsense.BASE_URL"
android:value="https://sixthsense-backend.jpe2-caas1-prod1.caas.jpe2b.r-local.net/mobile"/>

MainApplication.java の OnCreate コールバックにて、SSObservability を初期化します。

@Override
public void onCreate() {
super.onCreate();
SSObservability.init(this);
...
}

これにより、取り込まれたクラッシュと ANR がダッシュボードにリストアップされます。ネイティブ(Java)コードで処理された例外を報告するには、以下の手順で SSLogger を使用します。

try {
...
}
catch (e: Exception) {
SSLogger.log(e)
...
}

javascript のコードからエラーを報告するには、以下の手順に従います。

import { NativeModules } from 'react-native';
try {
var a = b; // Error Code
} catch (error) {
const { SixthsenseReactNativeMobile } = NativeModules;
SixthsenseReactNativeMobile.reportError(error.name, error.message,error.stack,false);
}

Fetch API を使用した http リクエストを自動的に取り込むには、buildscript の dependencies ブロックに以下を追加します。

dependencies {
classpath "com.rakuten.sixthsense.mobilemonitoring:SSNetworkPlugin:1.2.0"
}

モジュールレベルの build.gradle でプラグインを適用します。

apply plugin: "SSNetworkPlugin"

上記の http クライアントの自動インストルメンテーションの要件は以下の通りです:

  • Android Gradleプラグイン - 7.1+
  • Gradleバージョン - 7.2+

IOS

モバイルエージェントの実装

  1. X-Code で xcworkspace ファイルを開きます。
  2. Pods フォルダ内の Podfile を開き、'SixthSenseMobileSDK' pod を追加します。
  3. ターミナルでプロジェクトを開き、pod update コマンドを実行すると、サンプルアプリに SixthSenseMobileSDK がダウンロードされます。
  4. index.js クラスに移動し、initReactSDKInterceptor をインポートします。index.js ファイルにて、以下のコードで SDK を初期化します:
initReactSDKInterceptor();
NativeModules.SixthSenseMobileReact.initializeSDK('AccessTokenValue');
  1. アクセストークンの値を initializeSDK 関数に渡します。
    note

    モバイル監視ダッシュボードからアクセストークンの値を取得します。

  2. Info.plist ファイルを開き「AccessToken」キーを文字列として追加の上、値も追加します。
  3. Info.plist ファイルを開き「CountryCode」キーを文字列として追加の上、国コードの値も追加します(例:日本の場合は JP、アメリカの場合は US とします)。
  4. Info.plist ファイルを開き「EndPointName 」キーを文字列として追加の上、"https://http-collector-observability.sixthsense.rakuten.com/mobile/" の値も追加します。

OneCloud Platform を使用の場合は、Info.plist ファイルを開き "EndPointName" キーを文字列として追加の上、"https://sixthsense-backend.jpe2-caas1-prod1.caas.jpe2b.r-local.net/mobile" の値も追加します。

モバイルエージェントのテスト

モバイル監視のビルド、デバッグ、テストを実行するため、 Xcode ワークスペースに入ります。

  1. ViewController クラスで import SixthSenseMobileSDK を使用し強制的にクラッシュさせ、SixthSenseMobile.shared.raiseException() を呼び出します。
  2. シミュレータ(もしくはデバイス)でアプリケーションを実行し、アプリケーションをクラッシュさせます。クラッシュした後、シミュレータ(もしくはデバイス)でアプリケーションを再起動します。
  3. SixthSense ポータルからモバイル監視ダッシュボードに移動し、クラッシュログやその他のマトリクスを確認します。