すべてのプロダクト
Search
ドキュメントセンター

Cloud Monitor:Sentry SDK データ取り込みの設定

最終更新日:Feb 12, 2026

このトピックでは、Sentry SDK によって収集されたアプリケーションデータを Alibaba Cloud Simple Log Service (SLS) に送信し、Real User Monitoring コンソールで表示・分析する方法について説明します。

前提条件

  • この機能は現在、グレースケールリリース中です。アクセスを申請するには、チケットを送信してください。

  • Cloud Monitor 2.0 を有効化しました。

  • ワークスペースを作成しました。ワークスペースを作成しました

  • クライアントアプリケーションに Sentry SDK を統合済みであり、SDK バージョンが要件を満たしている必要があります。サポートされているバージョンの一覧については、「Real User Monitoring との Sentry SDK 統合の概要」をご参照ください。

このソリューションは Sentry Envelope プロトコルフォーマットのみをサポートします。JavaScript SDK v6 以前など、古い SDK バージョンを使用している場合は、Envelope をサポートするバージョンにスペックアップする必要があります。

ステップ 1:RUM アプリケーションの作成

  1. Cloud Monitor 2.0 コンソールにログインし、対象のワークスペースを選択して、左側のナビゲーションウィンドウで Integration Center をクリックします。

  2. 左側のナビゲーションウィンドウで Integration Center をクリックします。

  3. Real User Monitoring セクションで、iOS、Android、Web など、ご利用のアプリケーションタイプに一致するプラットフォームカードを選択します。

  4. アプリケーション名を入力します。必要に応じて他のパラメーターを設定し、Create Application をクリックします。

  5. アプリケーションの作成後、Application Settings > Basic Information に移動し、以下の値を記録します。

    パラメーター

    説明

    現在地を取得

    Workspace

    ワークスペース名

    Application Settings > Basic Information

    Endpoint

    データレポート用ドメイン名

    Application Settings > Basic Information > Integration Configuration

    ServiceId

    RUM アプリケーション ID

    Application Settings > Basic Information

ステップ 2:Sentry でのプロジェクトの作成(任意)

このステップは、Sentry コンソールでデータを表示する場合にのみ必要です。目的は、Sentry プロジェクト ID を取得することです。

  1. Sentry コンソールにログインします。

  2. 新しいプロジェクトを作成します。クライアントアプリケーションと同じプラットフォームを選択します。

  3. プロジェクト設定ページに移動し、DSN 構成を確認します。

  4. DSN からプロジェクト ID を抽出します。これは URL パスの末尾にある数値セグメントです。

たとえば、DSN が https://xxx@sentry.example.com/21 の場合、プロジェクト ID は 21 です。

注:Sentry コンソールを使用しない場合は、このステップをスキップできます。後続の構成では、プロジェクト ID を 0 に設定してください。

ステップ 3:データ取り込みの設定

ご利用のシナリオに応じて、以下のいずれかの方法を選択します。新規ユーザーまたは移行検証を完了したユーザーには、SDK 直接書き込み方式を推奨します。自己管理型 Sentry インスタンスからの移行を行う場合は、まず Nginx ミラー二重書き込み方式を使用してデータ整合性を検証し、その後 SDK 直接書き込み方式に切り替えることを推奨します。

方法 1:SDK 直接書き込み

クライアントアプリケーションの Sentry SDK における DSN 構成を更新し、Alibaba Cloud SLS を指すようにします。

DSN フォーマット

元の Sentry DSN フォーマット:

https://<public_key>@<sentry_host>/<project_id>

変更後の Alibaba Cloud DSN フォーマット:

https://<public_key>@<endpoint>/rum/sentry/<workspace>/<service_id>/<project_id>

パラメーター

パラメーター

説明

public_key

Sentry DSN の公開キー。SLS はこのパラメーターを検証しません。任意の値を使用できます。

endpoint

データレポート用ドメイン名。ステップ 1 で取得した値を使用します。

workspace

ワークスペース名。ステップ 1 で取得した値を使用します。

service_id

RUM アプリケーション ID。ステップ 1 で取得した値を使用します。

project_id

Sentry プロジェクト ID。ステップ 2 で取得した値を使用します。Sentry コンソールを使用しない場合は、0 に設定してください。

構成例

以下に、各プラットフォーム向けの SDK 構成例を示します。

iOS (Swift)

import Sentry

SentrySDK.start { options in
    options.dsn = "https://key@cn-chengdu.log.aliyuncs.com/rum/sentry/my-workspace/abc123@example/21"
    options.debug = true
}

Android (Kotlin)

import io.sentry.android.core.SentryAndroid

SentryAndroid.init(this) { options ->
    options.dsn = "https://key@cn-chengdu.log.aliyuncs.com/rum/sentry/my-workspace/abc123@example/21"
    options.isDebug = true
}

Web (JavaScript)

import * as Sentry from "@sentry/browser";

Sentry.init({
  dsn: "https://key@cn-chengdu.log.aliyuncs.com/rum/sentry/my-workspace/abc123@example/21",
  debug: true,
});

Electron

import * as Sentry from "@sentry/electron";

Sentry.init({
  dsn: "http://key@cn-chengdu.log.aliyuncs.com/rum/sentry/my-workspace/abc123@example/21",
});

Vue

import * as Sentry from "@sentry/vue";

Sentry.init({
  app,
  dsn: "http://key@cn-chengdu.log.aliyuncs.com/rum/sentry/my-workspace/abc123@example/21",
});

方法 2:Nginx ミラー二重書き込み

Nginx ミラーモジュールを使用して、データを既存の Sentry サービスと Alibaba Cloud SLS の両方に送信します。

シナリオ:Standard Edition Sentry コンソール、RUM Edition Sentry コンソール、および Alibaba Cloud RUM コンソールのすべてでデータを表示する必要がある場合。

構成手順

  1. Nginx 構成ファイルに、SLS 転送用の upstream を追加します。

    upstream rum_forwarder {
        server <endpoint>:80;
        keepalive 2;
    }
  2. URI マッピングルールを追加します。Sentry プロジェクト ID に基づいて異なる転送パスを設定します。

    map $request_uri $forwarder_path {
        # デフォルト転送パス
        default /rum/sentry/<workspace>/<service_id>;
        
        # プロジェクト ID ごとの転送
        "~^/api/<project_id>/envelope/"  /rum/sentry/<workspace>/<service_id_for_project_1>;
        "~^/api/1/envelope/"  /rum/sentry/<workspace>/<service_id_for_project_1>;
        "~^/api/2/envelope/"  /rum/sentry/<workspace>/<service_id_for_project_2>;
    }
  3. Sentry API ルートに対してトラフィックミラーリングを有効にします。

       location ~ ^/api/[1-9]\d*/ {
           proxy_pass http://relay;
           mirror /rum_mirror;
           mirror_request_body on;
       }
    
       location = /rum_mirror {
           internal;
           
           proxy_pass http://rum_forwarder$forwarder_path$request_uri;
           
           proxy_set_header Host <endpoint>;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
           proxy_set_header X-Request-Id $request_id;
           proxy_set_header Connection '';
    
           proxy_read_timeout 5s;
           proxy_send_timeout 5s;
           proxy_connect_timeout 5s;
    
           proxy_ignore_client_abort on;
       }
  4. Nginx 構成を再読み込みします。

    nginx -t && nginx -s reload

マルチプロジェクト構成例

複数の Sentry プロジェクトがあり、それぞれを異なる RUM アプリケーションに転送する必要がある場合は、以下のように map ルールを構成できます。

map $request_uri $forwarder_path {
    default /rum/sentry/my-workspace/default-service;
    
    # Project 1 → RUM Application A
    "~^/api/1/envelope/"  /rum/sentry/my-workspace/service-a;
    
    # Project 2 → RUM Application B
    "~^/api/2/envelope/"  /rum/sentry/my-workspace/service-b;
    
    # Project 3 → RUM Application C
    "~^/api/3/envelope/"  /rum/sentry/my-workspace/service-c;
}

完全な構成例

http {
    upstream rum_forwarder {
        server <endpoint>:80;
        keepalive 2;
    }

    map $request_uri $forwarder_path {
        # デフォルト転送パス
        default /rum/sentry/<workspace>/<service_id>;
       
        # プロジェクト ID ごとの転送
        "~^/api/1/envelope/"  /rum/sentry/<workspace>/<service_id_for_project_1>;
        "~^/api/2/envelope/"  /rum/sentry/<workspace>/<service_id_for_project_2>;
   }

    server {
        listen 80;
        server_name sentry.example.com;

        # Sentry API ルート — ミラーリングを有効化
        location ~ ^/api/[1-9]\d*/ {
            proxy_pass http://relay;
            mirror /rum_mirror;
            mirror_request_body on;
        }

        # SLS ミラー処理
        location = /rum_mirror {
            internal;
       
            proxy_pass http://rum_forwarder$forwarder_path$request_uri;
       
            proxy_set_header Host <endpoint>;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Request-Id $request_id;
            proxy_set_header Connection '';

            proxy_read_timeout 5s;
            proxy_send_timeout 5s;
            proxy_connect_timeout 5s;

            proxy_ignore_client_abort on;
        }

        # その他の Sentry ルート構成
        # ...
    }
}

パラメーターの説明

パラメーター

説明

endpoint

SLS データレポート用ドメイン名(例:cn-chengdu.log.aliyuncs.com

workspace

ワークスペース名

service_id

RUM アプリケーション ID

project_id

Sentry プロジェクト ID

データ取り込みの検証

構成が完了したら、以下の手順でデータが正しく取り込まれているかを検証できます。

  1. クライアントアプリケーションでテストエラーまたはイベントを発生させます。

  2. Cloud Monitor 2.0 コンソールにログインし、Real User Monitoring > Application List に移動します。

  3. RUM アプリケーションを選択し、新しいデータが表示されているかを確認します。通常、データは取り込み後 1~2 分以内にコンソールに表示されます。

よくある質問

Q:DSN の public_key に任意の値を設定できますか?

A:はい、可能です。SLS は Sentry DSN の public_key パラメーターを検証しません。トレーサビリティのため、元のキーをそのまま使用することを推奨します。

Q:データを SLS に取り込んだ後も、Sentry コンソールで表示できますか?

A:はい、可能です。SLS からデータを読み取るカスタム版の Sentry Web および Snuba API コンテナーをデプロイできます。詳細な手順については、「Real User Monitoring データを読み取るように Sentry コンソールを設定する方法」をご参照ください。