次の方法で共有


Microsoft Azure Monitor の Application Insights JavaScript SDK 構成

Azure Application Insights JavaScript SDK には、Web アプリケーションの追跡、監視、デバッグのための構成が用意されています。

SDK の構成

これらの構成フィールドは省略可能である、特に明記されていない限り、既定値は false です。

SDK 構成を追加する手順については、「SDK 構成を追加する」を参照してください。

名前 タイプ 既定値
アカウントID

省略可能なアカウント ID (アプリによってユーザーがアカウントにグループ化される場合)。 スペース、コンマ、セミコロン、等号、または縦棒は使用できません。
文字列 null 値
リクエストコンテキスト追加

API 呼び出しの開始時にコンテキストを使用して依存関係ログをエンリッチする方法を提供します。 既定値は未定義です。 xhr 関連のコンテキストを構成する場合は、xhr が存在するかどうかを確認する必要があります。 fetch request 関連のコンテキストを構成する場合は、fetch responsefetch が存在するかどうかを確認する必要があります。 そうしないと、必要なデータが取得されない可能性があります。
(requestContext: IRequestionContext) => {[key: string]: any} 未定義
ajaxPerfLookupDelay

既定値は 25 ミリ秒です。 Ajax 要求で windows.performance のタイミングの検索を再試行するまでの待ち時間。時間はミリ秒単位であり、setTimeout() に直接渡されます。
numeric 二十五
アプリID

appId は、サーバー側の要求によってクライアント側で発生する AJAX 依存関係の相関関係のために使用されます。 Beacon API が有効になっている場合、自動的に使用することはできませんが、構成では手動で設定できます。 既定値は null です。
文字列 null 値
ページ訪問時間の自動追跡

true の場合、ページ ビューに関して、にインストルメント化されたページのビュー時間が追跡されてテレメトリとして送信されます。また、現在のページ ビューについて新しいタイマーが開始されます。 これは PageVisitTime という名前のカスタム メトリック (単位: milliseconds) として送信され、Date の now() 関数 (使用可能な場合) を使用して計算されます。now() が使用できない場合 (IE8 以下) は、(new Date()).getTime() にフォールバックされます。 既定値は false です。
ブーリアン 偽り
convertUndefined

未定義のフィールドをユーザー定義値に変換するオプションをユーザーに提供します。
any 未定義
cookieCfg

Cookie の使用が有効な既定値になります。詳細については、ICookieCfgConfig 設定を参照してください。
ICookieCfgConfig
[省略可能]
(2.6.0 以降)
未定義
クッキードメイン

カスタム Cookie ドメイン。 これは、サブドメイン間で Application Insights の Cookie を共有する場合に便利です。
(v2.6.0 以降) cookieCfg.___domain が定義されている場合は、この値よりも優先されます。
cookieCfg.___domain の別名
[省略可能]
null 値
cookiePath

カスタム Cookie パス。 これは、アプリケーション ゲートウェイの背後で Application Insights の Cookie を共有する場合に便利です。
cookieCfg.path が定義されている場合は、それが優先されます。
cookieCfg.path の別名
[省略可能]
(2.6.0 以降)
null 値
correlationHeaderDomains

特定のドメインの関連付けヘッダーを有効にします。
string[] 未定義
correlationHeaderExcludedDomains

特定のドメインの関連付けヘッダーを無効にします。
string[] 未定義
correlationHeaderExcludePatterns

正規表現を使用して関連付けヘッダーを無効にします。
regex[] 未定義
パフォーマンスマネージャーを作成する

必要に応じて IPerfManager インスタンスを作成するために呼び出され、 enablePerfMgr が有効になっているコールバック関数を使用すると、初期化後に setPerfMgr() しなくても、PerfManager() の既定の作成をオーバーライドできます。
(core: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager 未定義
customHeaders

ユーザーがカスタム エンドポイントを使用する際に追加のヘッダーを指定するための機能。 ビーコン センダーが使用されている場合、ブラウザーのシャットダウン時に customHeaders は追加されません。 また、IE9 以前ではカスタム ヘッダーの追加はサポートされていません。
[{header: string, value: string}] 未定義
diagnosticLogInterval

内部ログ キューの (内部) ポーリング間隔 (ミリ秒)
numeric 1万
Ajaxトラッキングを無効化

true の場合、Ajax 呼び出しは自動収集されません。 既定値は false です。
ブーリアン 偽り
クッキー使用を無効にする

既定値は false です。 SDK による Cookie の使用を無効にするかどうかを示すブール値。 true の場合、SDK によって Cookie のデータの格納や読み取りは行われません。
(v2.6.0 以降) cookieCfg.enabled が定義されている場合は、それが優先されます。 Cookie の使用は、core.getCookieMgr().setEnabled(true) を使用して、初期化後に再度有効にすることができます。
cookieCfg.enabled の別名
[省略可能]
偽り
disableCorrelationHeaders

false の場合、SDK によって 2 つのヘッダー (Request-Id と Request-Context) がすべての依存関係要求に追加され、サーバー側の対応する要求と関連付けられます。 既定値は false です。
ブーリアン 偽り
データ損失分析を無効化する

false の場合、まだ送信されていない項目について、内部テレメトリ センダー バッファーが起動時にチェックされます。
ブーリアン ほんとう
例外追跡を無効にする

true の場合、例外は自動収集されません。 既定値は false です。
ブーリアン 偽り
フェッチトラッキングを無効化する

disableFetchTracking の既定の設定は false です。つまり有効であることを意味します。 ただし、2.8.10 より前のバージョンでは、既定では無効になっています。 true に設定すると、フェッチ要求は自動的には収集されません。 既定の設定は、バージョン 2.8.0 で true から false に変更されました。
ブーリアン 偽り
disableFlushOnBeforeUnload

既定値は false です。 true の場合、onBeforeUnload イベントのトリガー時に flush メソッドは呼び出されません
ブーリアン 偽り
disableIkeyDeprecationMessage

インストルメンテーション キーの廃止エラー メッセージを無効にします。 true の場合、エラー メッセージは送信されません。
ブーリアン ほんとう
インストゥルメンテーションキー検証を無効化

true の場合、インストルメンテーション キーの検証チェックはバイパスされます。 既定値は false です。
ブーリアン 偽り
テレメトリーを無効化する

true の場合、テレメトリの収集や送信は行われません。 既定値は false です。
ブーリアン 偽り
Xhrを無効化する

既定で XMLHttpRequest または XDomainRequest (Internet Explorer < 9 の場合) を使わず、代わりに fetch() または sendBeacon の使用を試みます。 他のトランスポートが使用できない場合は、XMLHttpRequest が使用されます
ブーリアン 偽り
distributedTracingMode

分散トレース モードを設定します。 AI_AND_W3C モードまたは W3C モードが設定されている場合、W3C トレース コンテキスト ヘッダー (traceparent/traceparent) が生成され、すべての送信要求に組み込まれます。 AI_AND_W3C は、従来の Application Insights のインストルメント化されたサービスとの下位互換性を保つために用意されています。
数値または DistributedTracingModes DistributedTracing Modes.AI_AND_W3C
enableAjaxErrorStatusText (AJAXエラーステータステキストを有効化)

既定値は false です。 true の場合、失敗した AJAX 要求の依存関係イベントに応答エラー データのテキスト ブール値を含めます。
ブーリアン 偽り
Ajaxパフォーマンストラッキングを有効にする

既定値は false です。 ブラウザーの window.performance の追加のタイミングを検索し、レポートされる Ajax (XHR および fetch) のレポートされるメトリックに含めることを可能にするフラグを設定します。
ブーリアン 偽り
自動ルート追跡を有効化する

シングル ページ アプリケーション (SPA) でのルート変更を自動的に追跡します。 true の場合、ルートの変更ごとに新しいページビューが Application Insights に送信されます。 ハッシュ ルート変更 (example.com/foo#bar) も新しいページ ビューとして記録されます。
: このフィールドを有効にした場合、複数のページ ビュー イベントが発生するため、history オブジェクトを有効にしないでください。
ブーリアン 偽り
CORS相関を有効化

truee の場合、SDK によって 2 つのヘッダー (Request-Id と Request-Context) がすべての CORS 要求に追加され、送信される AJAX 依存関係がサーバー側の対応する要求と関連付けられます。 既定値は false です。
ブーリアン 偽り
デバッグを有効化

true の場合、SDK ログ設定に関わらず、内部デバッグ データはログに記録される代わりに例外としてスローされます。 既定値は false です。
注: この設定を有効にすると、内部エラーが発生するたびにテレメトリがドロップされます。 これは、SDK の構成または使用に関する問題をすばやく特定するのに役立ちます。 デバッグ時にテレメトリが失われないようにしたい場合は、loggingLevelConsole の代わりに loggingLevelTelemetry または enableDebug を使用することを検討してください。
ブーリアン 偽り
パフォーマンスマネージャーを有効化する

有効 (true) にすると、(doPerf() ヘルパーを使用して) perfEvents を生成するためにインストルメント化されたコードのローカル perfEvents が作成されます。 これは、使用量に基づいて SDK 内で、または必要に応じて独自のインストルメント化されたコード内で、パフォーマンスの問題を識別するために使用できます。
ブーリアン 偽り
リクエストヘッダートラッキングを有効化 (enableRequestHeaderTracking)

true の場合、AJAX と Fetch の要求ヘッダーが追跡されます。既定値は false です。 ignoreHeaders が構成されていない場合、Authorization ヘッダーと X-API-Key ヘッダーはログに記録されません。
ブーリアン 偽り
レスポンスヘッダートラッキングを有効にする

true の場合、AJAX と Fetch の要求の応答ヘッダーが追跡されます。既定値は false です。 ignoreHeaders が構成されていない場合、WWW-Authenticate ヘッダーはログに記録されません。
ブーリアン 偽り
セッションストレージバッファを有効にする

既定値は true です。 true の場合、未送信のすべてのテレメトリを含むバッファーがセッション ストレージに格納されます。 バッファーはページの読み込み時に復元されます。
ブーリアン ほんとう
未処理のプロミス拒否の追跡を有効にする (enableUnhandledPromiseRejectionTracking)

true の場合、未処理の Promise 拒否が JavaScript エラーとして自動収集されます。 disableExceptionTracking が true (例外を追跡しない) の場合、この構成値は無視され、未処理の Promise 拒否はレポートされません。
ブーリアン 偽り
eventsLimitInMem

セッション ストレージ (既定値) を使用しない場合に、SDK がイベントの削除を開始するまでメモリに保持できるイベント数。
number 1万
自動追跡パターンからリクエストを除外する

XMLHttpRequest またはフェッチ要求の自動追跡から特定のルートを除外する方法を提供します。 定義されている場合、要求 URL が正規表現パターンと一致する Ajax/フェッチ要求について、自動追跡はオフになります。 既定値は未定義です。
string[] |RegExp[] 未定義
featureOptIn

機能オプトインの詳細を設定します。

この構成フィールドは、バージョン 3.0.3 以降でのみ使用できます。
IFeatureOptIn 未定義
idLength

新しいランダム セッションとユーザー ID を生成するために使用される既定の長さを識別します。 既定値は 22 です。以前の既定値は 5 (v2.5.8 以下) でした。前の最大長を保持する必要がある場合は、この値を 5 に設定する必要があります。
numeric 22
ignoreHeaders

ログ データで無視される AJAX と Fetch の要求ヘッダーと応答ヘッダー。 既定値をオーバーライドまたは破棄するには、除外するすべてのヘッダーを含む配列または空の配列を構成に追加します。
string[] ["Authorization", "X-API-Key", "WWW-Authenticate"]
ビーコンAPIが無効化されているか

false の場合、SDK は Beacon API を使用してすべてのテレメトリを送信します。
ブーリアン ほんとう
isBrowserLinkTrackingEnabled(ブラウザーリンクトラッキングを有効にするかどうか)

既定値は false です。 true の場合、SDK によってすべてのブラウザー リンク要求が追跡されます。
ブーリアン 偽り
isRetryDisabled

既定値は false です。 false の場合、206 (部分的な成功)、408 (タイムアウト)、429 (要求が多すぎる)、500 (内部サーバー エラー)、503 (サービス利用不可)、および 0 (オフライン、検出された場合のみ) で再試行します。
ブーリアン 偽り
isStorageUseDisabled

true の場合、SDK によってローカルおよびセッションのストレージのデータの格納や読み取りは行われません。 既定値は false です。
ブーリアン 偽り
loggingLevelConsole

内部 Application Insights エラーをコンソールに記録します。
0: オフ
1: 重大なエラーのみ、
2: すべて (エラーと警告)
numeric 0
loggingLevelTelemetry

内部 Application Insights エラーをテレメトリとして送信します。
0: オフ
1: 重大なエラーのみ、
2: すべて (エラーと警告)
numeric 1
maxAjaxCallsPerView

既定値: 500 - ページ ビューあたりの監視対象 Ajax 呼び出し数を制御します。 -1 に設定すると、ページで発行されたすべて (無制限) の Ajax 呼び出しを監視します。
numeric 500
maxAjaxPerfLookupAttempts

既定値は 3 です。 window.performance のタイミング (使用可能な場合) を検索する最大回数は必須です。 すべてのブラウザーが XHR 要求の終了をレポートする前に window.performance を設定するわけではありません。 fetch 要求の場合、これはその完了後に追加されます。
numeric 3
maxBatchInterval (最大バッチ間隔)

送信前にテレメトリをバッチ処理する時間 (ミリ秒)
numeric 15000
maxBatchSizeInBytes (最大バッチサイズのバイト数)

テレメトリ バッチの最大サイズ。 バッチがこの制限を超えると、すぐに送信され、新しいバッチが開始されます
numeric 1万
namePrefix

localStorage とセッション Cookie 名の後置名として使用される省略可能な値。
文字列 未定義
onunloadDisableBeacon

既定値は false です。 タブが閉じられると、SDK により Beacon API を使用して残りのすべてのテレメトリが送信されます。
ブーリアン 偽り
onunloadDisableFetch

フェッチ キープアライブがサポートされている場合は、アンロード中にイベントを送信するために使用しないでください。キープアライブなしで fetch() にフォールバックする可能性があります
ブーリアン 偽り
overridePageViewDuration

true の場合、trackPageView の既定の動作が変わり、trackPageView の呼び出し時にページビュー期間の終了を記録します。 false の場合に、trackPageView にカスタム期間が指定されていないと、Navigation Timing API を使用してページ ビューのパフォーマンスが計算されます。 既定値は false です。
ブーリアン 偽り
perfEvtsSendAll

enablePerfMgr が有効になっていて、IperfmanagerINotificationManager perfEvent() を起動した場合、このフラグにより、すべてのイベントに対してイベントが発生 (そしてすべてのリスナーに送信) するか (true)、'parent' イベントに対してのみ発生するか (false <既定値>) が決定します。
親の IPerfEvent は、イベントが作成された時点で他の IPerfEvent がまだ実行されておらず、その parent プロパティが null でも未定義でもないイベントです。 v2.5.7 以降
ブーリアン 偽り
サンプリングパーセンテージ

送信されるイベントの割合。 既定値は 100 で、すべてのイベントが送信されます。 大規模なアプリケーションでデータ上限を維持する場合に設定します。
numeric 100
sdkExtension

SDK 拡張機能の名前を設定します。 英字のみを使用できます。 拡張機能名はプレフィックスとして ai.internal.sdkVersion タグに付けられます (ext_javascript:2.0.0 など)。 既定値は Null です。
文字列 null 値
sessionCookiePostfix

セッション Cookie 名の後置名として使用される省略可能な値。 未定義の場合、セッション Cookie 名の接尾語として namePrefix が使用されます。
文字列 未定義
セッション有効期限ミリ秒

セッションがこの時間 (ミリ秒単位) にわたって継続する場合に、セッションがログに記録されます。 既定値は 24 時間です。
numeric 86400000
sessionRenewalMs

この時間 (ミリ秒単位) にわたってユーザーが非アクティブである場合に、セッションがログに記録されます。 既定値は 30 分です。
numeric 1800000
throttleMgrCfg

キーでスロットル mgr 構成を設定します。

この構成フィールドは、バージョン 3.0.3 以降でのみ使用できます。
{[key: number]: IThrottleMgrConfig} 未定義
userCookiePostfix

ユーザー Cookie 名の名前の後置として使用される省略可能な値。 未定義の場合、ユーザー Cookie 名に接尾語は追加されません。
文字列 未定義

分散トレース

最新のクラウドおよび マイクロサービス アーキテクチャでは、可用性とスループットを向上させながらコストを削減する、シンプルで個別にデプロイ可能なサービスが実現されています。 ただし、システム全体の推論とデバッグが難しくなっています。 分散トレースでは、クラウドおよびマイクロサービス アーキテクチャの呼び出し履歴と同様に動作するパフォーマンス プロファイラーを提供することで、この問題を解決します。

Azure Monitor には、分散トレース データを使用するための 2 つのエクスペリエンスが用意されています。1 つのトランザクション/要求の トランザクション診断 ビューと、システムの対話方法を示す アプリケーション マップ ビューです。

Application Insights では、分散テレメトリの相関関係を使用して、各コンポーネントを個別に監視し、障害やパフォーマンスの低下を担当するコンポーネントを検出できます。 この記事では、Application Insights で使用されるさまざまな言語とプラットフォームでのデータ モデル、コンテキスト伝達手法、プロトコル、相関戦術の実装について説明します。

Application Insights の自動インストルメンテーションまたは SDK を使用して、分散トレースを有効にする。

.NET、.NET Core、Java、Node.js、JavaScript 用の Application Insights エージェントと SDK はすべて、分散トレースをネイティブにサポートします。

適切な Application Insights SDK がインストールされ、構成されると、一般的なフレームワーク、ライブラリ、テクノロジのトレース情報が SDK 依存関係オートコレクタによって自動的に収集されます。 サポートされているテクノロジの完全な一覧は、 Dependency autocollection ドキュメントで入手できます。

TelemetryClient で TrackDependency を呼び出して、任意のテクノロジを手動で追跡することもできます。

テレメトリの相関関係のデータ モデル

Application Insights では、分散テレメトリの相関関係のための データ モデル を定義します。 テレメトリを論理操作に関連付けるために、すべてのテレメトリ項目には operation_Id というコンテキスト フィールドがあります。 分散トレース内のすべてのテレメトリ項目は、この識別子を共有します。 そのため、1 つのレイヤーからテレメトリを失った場合でも、他のコンポーネントから報告されたテレメトリを関連付けることができます。

分散論理操作は、通常、コンポーネントの 1 つによって処理される要求である一連の小規模な操作で構成されます。 要求テレメトリは、 これらの操作を定義します。 すべての要求テレメトリ項目には、一意かつグローバルに識別する独自の id があります。 要求に関連付けられているすべてのテレメトリ項目 (トレースや例外など) は、要求operation_parentIdの値にidを設定する必要があります。

依存関係テレメトリ は、別のコンポーネントへの HTTP 呼び出しなど、すべての送信操作を表します。 また、グローバルに一意の独自の id も定義します。 この依存関係呼び出しによって開始された要求テレメトリは、この idoperation_parentIdとして使用します。

operation_Idoperation_parentIdrequest.id、およびdependency.idを使用して、分散論理操作のビューを構築できます。 これらのフィールドは、テレメトリ呼び出しの因果関係の順序も定義します。

マイクロサービス環境では、コンポーネントからのトレースはさまざまなストレージ項目に移動できます。 Application Insights では、すべてのコンポーネントに独自の接続文字列を含めることができます。 Application Insights は、論理操作のテレメトリを取得するために、すべてのストレージ項目からデータを照会します。

ストレージ項目の数が多い場合は、次の場所に関するヒントが必要です。 Application Insights データ モデルでは、この問題を解決するために、 request.sourcedependency.targetという 2 つのフィールドが定義されています。 最初のフィールドは、依存関係要求を開始したコンポーネントを識別します。 2 番目のフィールドは、依存関係呼び出しの応答を返したコンポーネントを識別します。

複数の異なるインスタンスからのクエリの詳細については、 Azure Monitor の Log Analytics ワークスペース、アプリケーション、およびリソース全体のデータのクエリを参照してください。

Example

例を見てみましょう。 株価と呼ばれるアプリケーションは、Stock と呼ばれる外部 API を使用して、株式の現在の市場価格を示します。 株価アプリケーションには、 GET /Home/Stockを使用してクライアント Web ブラウザーが開く Stock ページというページがあります。 アプリケーションは、HTTP 呼び出し GET /api/stock/valueを使用して Stock API に対してクエリを実行します。

クエリを実行することで、結果のテレメトリを分析できます。

(requests | union dependencies | union pageViews)
| where operation_Id == "STYz"
| project timestamp, itemType, name, id, operation_ParentId, operation_Id

結果では、すべてのテレメトリ項目がルート operation_Idを共有します。 ページから Ajax 呼び出しが行われると、依存関係テレメトリに新しい一意の ID (qJSXU) が割り当てられ、pageView の ID が operation_ParentIdとして使用されます。 その後、サーバー要求は Ajax ID を operation_ParentIdとして使用します。

アイテムタイプ 名前 ID operation_ParentId operation_Id
pageView 株式ページ STYz STYz
依存関係 GET /Home/Stock qJSXU STYz STYz
要求 GET Home/Stock KqKwlrSt9PA= qJSXU STYz
依存関係 GET /api/stock/value bBrf2L7mm2g= KqKwlrSt9PA= STYz

呼び出し GET /api/stock/value が外部サービスに対して行われる場合は、 dependency.target フィールドを適切に設定できるように、そのサーバーの ID を把握する必要があります。 外部サービスが監視をサポートしていない場合、 target はサービスのホスト名に設定されます。 たとえば stock-prices-api.com です。 ただし、定義済みの HTTP ヘッダーを返すことによってサービス自体が識別される場合、 target には、Application Insights がそのサービスからのテレメトリに対してクエリを実行して分散トレースを構築できるようにするサービス ID が含まれます。

W3C TraceContext を使用した関連付けヘッダー

Application Insights は、次を定義する W3C トレース コンテキストに移行しています。

  • traceparent: 呼び出しのグローバルに一意の操作 ID と一意識別子を格納します。
  • tracestate: システム固有のトレース コンテキストを実行します。

Application Insights SDK の最新バージョンでは、Trace-Context プロトコルがサポートされていますが、オプトインが必要な場合があります。 (Application Insights SDK でサポートされていた以前の関連付けプロトコルとの下位互換性は維持されます)。

関連付け HTTP プロトコル (Request-Id とも呼ばれます) は非推奨になっています。 このプロトコルは、次の 2 つのヘッダーを定義します。

  • Request-Id: 呼び出しのグローバルに一意の ID を伝送します。
  • Correlation-Context: 分散トレース プロパティの名前と値のペアのコレクションを保持します。

Application Insights では、関連付け HTTP プロトコルの 拡張機能 も定義されます。 Request-Context名前と値のペアを使用して、直前の呼び出し元または呼び出し先が使用するプロパティのコレクションを伝達します。 Application Insights SDK では、このヘッダーを使用して、 dependency.target フィールドと request.source フィールドを設定します。

W3C トレース コンテキストおよび Application Insights データ モデルは、次のようにマップされます。

Application Insights W3C TraceContext
IdRequestDependency parent-id
Operation_Id trace-id
Operation_ParentId この範囲の親範囲の parent-id。 ルート スパンの場合、このフィールドは空である必要があります。

詳細については、「 Application Insights テレメトリ データ モデル」を参照してください。

W3C 分散トレースのサポートを有効にする

この機能は JavaScript に対して既定で有効になっており、ホスティング ページ ドメインが要求の送信先ドメインと同じである場合 (たとえば、ホスティング ページが example.com され、Ajax 要求が example.com に送信される場合) にヘッダーが自動的に含まれます。 分散トレース モードを変更するには、 distributedTracingMode 構成フィールドを使用します。 AI_AND_W3Cは、Application Insights によってインストルメント化されたレガシ サービスとの下位互換性のために既定で提供されます。

XMLHttpRequest または Fetch Ajax 要求がサブドメインを含む別のドメイン ホストに送信される場合、関連付けヘッダーは既定では含まれません。 この機能を有効にするには、 enableCorsCorrelation 構成フィールドtrueに設定します。 enableCorsCorrelationtrue に設定すると、すべての XMLHttpRequest 要求と Fetch Ajax 要求に関連付けヘッダーが含まれます。 その結果、呼び出されているサーバー上のアプリケーションが traceparent ヘッダーをサポートしていない場合、ブラウザー/バージョンがサーバーが受け入れるヘッダーに基づいて要求を検証できるかどうかに応じて、要求が失敗する可能性があります。 correlationHeaderExcludedDomains構成フィールドを使用して、コンポーネント間相関ヘッダー挿入からサーバーのドメインを除外できます。 たとえば、 correlationHeaderExcludedDomains: ['*.auth0.com'] を使用して、Auth0 ID プロバイダーに送信された要求から関連付けヘッダーを除外できます。

Important

関連付けを有効にするために必要なすべての構成を確認するには、 JavaScript の相関関係に関するドキュメントを参照してください

テレメトリのフィルター処理と前処理

SDK から送信される前に、テレメトリをフィルター処理、変更、または強化するコードを記述できます。 この処理には、HTTP 要求の収集や依存関係の収集など、標準のテレメトリ モジュールから送信されるデータが含まれます。

  • フィルター処理 では、 ITelemetryProcessorを実装することで、SDK から送信される前にテレメトリを変更または破棄できます。 たとえば、ロボットからの要求を除外することで、テレメトリの量を減らすことができます。 サンプリングとは異なり、送信または破棄される内容を完全に制御できますが、集計されたログに基づくメトリックに影響します。 項目を破棄する方法によっては、関連する項目間を移動する機能が失われる場合もあります。

  • ITelemetryInitializerを実装して、アプリから送信されたテレメトリにプロパティを追加または変更します。 たとえば、計算値やバージョン番号を追加して、ポータルでデータをフィルター処理できます。

  • サンプリング により、統計情報に影響を与えずにテレメトリの量が減ります。 関連するデータ ポイントがまとめて保持されるため、問題を診断するときにそれらの間を移動できます。 ポータルでは、サンプリングを補正するために合計カウントが乗算されます。

SDK API は、カスタム イベントとメトリックを送信するために使用されます。

フィルタリング

この手法を使用すると、テレメトリ ストリームに含まれるもの、またはテレメトリ ストリームから除外される内容を直接制御できます。 フィルター処理を使用して、テレメトリ項目が Application Insights に送信されないようにすることができます。 サンプリングでフィルター処理を使用することも、個別に使用することもできます。

テレメトリをフィルター処理するには、テレメトリ プロセッサを記述し、 TelemetryConfigurationに登録します。 すべてのテレメトリはプロセッサを通過します。 ストリームから削除するか、チェーン内の次のプロセッサに渡すかを選択できます。 HTTP 要求コレクターや依存関係コレクターなどの標準モジュールからのテレメトリと、自分で追跡したテレメトリが含まれます。 たとえば、ロボットからの要求や成功した依存関係呼び出しに関するテレメトリを除外できます。

Warnung

プロセッサを使用して SDK から送信されたテレメトリをフィルター処理すると、ポータルに表示される統計情報が偏り、関連項目のフォローが困難になる可能性があります。

代わりに、 サンプリングの使用を検討してください。

JavaScript Web アプリケーション

ITelemetryInitializer を使用して、JavaScript Web アプリケーションからのテレメトリをフィルター処理できます。

  1. テレメトリ初期化子コールバック関数を作成します。 コールバック関数は、 ITelemetryItem をパラメーターとして受け取ります。これは、処理中のイベントです。 このコールバックから false が返されると、テレメトリ項目が除外されます。

    var filteringFunction = (envelope) => {
      if (envelope.data.someField === 'tobefilteredout') {
        return false;
      }
      return true;
    };
    
  2. 次のテレメトリ初期化子のコールバックを追加します。

    appInsights.addTelemetryInitializer(filteringFunction);
    

ITelemetryProcessor と ITelemetryInitializer

テレメトリ プロセッサとテレメトリ初期化子の違いは何ですか?

  • 実行できる操作には、いくつかの重複があります。 どちらもテレメトリのプロパティを追加または変更するために使用できますが、その目的には初期化子を使用することをお勧めします。
  • テレメトリ初期化子は、テレメトリ プロセッサの前に常に実行されます。
  • テレメトリ初期化子は、複数回呼び出される場合があります。 慣例により、既に設定されているプロパティは設定されません。
  • テレメトリ プロセッサを使用すると、テレメトリ項目を完全に置き換えたり破棄したりすることができます。
  • 登録されているすべてのテレメトリ初期化子は、すべてのテレメトリ項目に対して呼び出されます。 テレメトリ プロセッサの場合、SDK は最初のテレメトリ プロセッサの呼び出しを保証します。 残りのプロセッサが呼び出されるかどうかは、前述のテレメトリ プロセッサによって決定されます。
  • テレメトリ初期化子を使用して、より多くのプロパティでテレメトリを強化するか、既存のプロパティをオーバーライドします。 テレメトリ プロセッサを使用してテレメトリを除外します。

プロパティの追加/変更

テレメトリ初期化子を使用して、テレメトリを追加情報で強化したり、標準のテレメトリ モジュールによって設定されたテレメトリ プロパティをオーバーライドしたりします。

たとえば、Web パッケージの Application Insights は、HTTP 要求に関するテレメトリを収集します。 既定では、応答コード > =400 で要求に失敗としてフラグを設定します。 代わりに 400 を成功として扱う場合は、成功プロパティを設定するテレメトリ初期化子を指定できます。

テレメトリ初期化子を指定すると、Track*() メソッドのいずれかが呼び出されるたびに呼び出されます。 この初期化子には、標準のテレメトリ モジュールによって呼び出される Track() メソッドが含まれています。 慣例により、これらのモジュールは初期化子によって既に設定されたプロパティを設定しません。 テレメトリ初期化子は、テレメトリ プロセッサを呼び出す前に呼び出されるため、初期化子によって実行されるエンリッチメントはプロセッサに表示されます。

JavaScript テレメトリ初期化子

必要に応じて、JavaScript テレメトリ初期化子を挿入します。 Application Insights JavaScript SDK のテレメトリ初期化子の詳細については、「 テレメトリ初期化子」を参照してください。

JavaScript (Web) SDK ローダー スクリプト構成に onInit コールバック関数を追加して、テレメトリ初期化子を挿入します。

<script type="text/javascript">
!(function (cfg){function e(){cfg.onInit&&cfg.onInit(n)}var x,w,D,t,E,n,C=window,O=document,b=C.___location,q="script",I="ingestionendpoint",L="disableExceptionTracking",j="ai.device.";"instrumentationKey"[x="toLowerCase"](),w="crossOrigin",D="POST",t="appInsightsSDK",E=cfg.name||"appInsights",(cfg.name||C[t])&&(C[t]=E),n=C[E]||function(g){var f=!1,m=!1,h={initialize:!0,queue:[],sv:"8",version:2,config:g};function v(e,t){var n={},i="Browser";function a(e){e=""+e;return 1===e.length?"0"+e:e}return n[j+"id"]=i[x](),n[j+"type"]=i,n["ai.operation.name"]=b&&b.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(h.sv||h.version),{time:(i=new Date).getUTCFullYear()+"-"+a(1+i.getUTCMonth())+"-"+a(i.getUTCDate())+"T"+a(i.getUTCHours())+":"+a(i.getUTCMinutes())+":"+a(i.getUTCSeconds())+"."+(i.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z",iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}},ver:undefined,seq:"1",aiDataContract:undefined}}var n,i,t,a,y=-1,T=0,S=["js.monitor.azure.com","js.cdn.applicationinsights.io","js.cdn.monitor.azure.com","js0.cdn.applicationinsights.io","js0.cdn.monitor.azure.com","js2.cdn.applicationinsights.io","js2.cdn.monitor.azure.com","az416426.vo.msecnd.net"],o=g.url||cfg.src,r=function(){return s(o,null)};function s(d,t){if((n=navigator)&&(~(n=(n.userAgent||"").toLowerCase()).indexOf("msie")||~n.indexOf("trident/"))&&~d.indexOf("ai.3")&&(d=d.replace(/(\/)(ai\.3\.)([^\d]*)$/,function(e,t,n){return t+"ai.2"+n})),!1!==cfg.cr)for(var e=0;e<S.length;e++)if(0<d.indexOf(S[e])){y=e;break}var n,i=function(e){var a,t,n,i,o,r,s,c,u,l;h.queue=[],m||(0<=y&&T+1<S.length?(a=(y+T+1)%S.length,p(d.replace(/^(.*\/\/)([\w\.]*)(\/.*)$/,function(e,t,n,i){return t+S[a]+i})),T+=1):(f=m=!0,s=d,!0!==cfg.dle&&(c=(t=function(){var e,t={},n=g.connectionString;if(n)for(var i=n.split(";"),a=0;a<i.length;a++){var o=i[a].split("=");2===o.length&&(t[o[0][x]()]=o[1])}return t[I]||(e=(n=t.endpointsuffix)?t.___location:null,t[I]="https://"+(e?e+".":"")+"dc."+(n||"services.visualstudio.com")),t}()).instrumentationkey||g.instrumentationKey||"",t=(t=(t=t[I])&&"/"===t.slice(-1)?t.slice(0,-1):t)?t+"/v2/track":g.endpointUrl,t=g.userOverrideEndpointUrl||t,(n=[]).push((i="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",o=s,u=t,(l=(r=v(c,"Exception")).data).baseType="ExceptionData",l.baseData.exceptions=[{typeName:"SDKLoadFailed",message:i.replace(/\./g,"-"),hasFullStack:!1,stack:i+"\nSnippet failed to load ["+o+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(b&&b.pathname||"_unknown_")+"\nEndpoint: "+u,parsedStack:[]}],r)),n.push((l=s,i=t,(u=(o=v(c,"Message")).data).baseType="MessageData",(r=u.baseData).message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+l+")").replace(/\"/g,"")+'"',r.properties={endpoint:i},o)),s=n,c=t,JSON&&((u=C.fetch)&&!cfg.useXhr?u(c,{method:D,body:JSON.stringify(s),mode:"cors"}):XMLHttpRequest&&((l=new XMLHttpRequest).open(D,c),l.setRequestHeader("Content-type","application/json"),l.send(JSON.stringify(s)))))))},a=function(e,t){m||setTimeout(function(){!t&&h.core||i()},500),f=!1},p=function(e){var n=O.createElement(q),e=(n.src=e,t&&(n.integrity=t),n.setAttribute("data-ai-name",E),cfg[w]);return!e&&""!==e||"undefined"==n[w]||(n[w]=e),n.onload=a,n.onerror=i,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||a(0,t)},cfg.ld&&cfg.ld<0?O.getElementsByTagName("head")[0].appendChild(n):setTimeout(function(){O.getElementsByTagName(q)[0].parentNode.appendChild(n)},cfg.ld||0),n};p(d)}cfg.sri&&(n=o.match(/^((http[s]?:\/\/.*\/)\w+(\.\d+){1,5})\.(([\w]+\.){0,2}js)$/))&&6===n.length?(d="".concat(n[1],".integrity.json"),i="@".concat(n[4]),l=window.fetch,t=function(e){if(!e.ext||!e.ext[i]||!e.ext[i].file)throw Error("Error Loading JSON response");var t=e.ext[i].integrity||null;s(o=n[2]+e.ext[i].file,t)},l&&!cfg.useXhr?l(d,{method:"GET",mode:"cors"}).then(function(e){return e.json()["catch"](function(){return{}})}).then(t)["catch"](r):XMLHttpRequest&&((a=new XMLHttpRequest).open("GET",d),a.onreadystatechange=function(){if(a.readyState===XMLHttpRequest.DONE)if(200===a.status)try{t(JSON.parse(a.responseText))}catch(e){r()}else r()},a.send())):o&&r();try{h.cookie=O.cookie}catch(k){}function e(e){for(;e.length;)!function(t){h[t]=function(){var e=arguments;f||h.queue.push(function(){h[t].apply(h,e)})}}(e.pop())}var c,u,l="track",d="TrackPage",p="TrackEvent",l=(e([l+"Event",l+"PageView",l+"Exception",l+"Trace",l+"DependencyData",l+"Metric",l+"PageViewPerformance","start"+d,"stop"+d,"start"+p,"stop"+p,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),h.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4},(g.extensionConfig||{}).ApplicationInsightsAnalytics||{});return!0!==g[L]&&!0!==l[L]&&(e(["_"+(c="onerror")]),u=C[c],C[c]=function(e,t,n,i,a){var o=u&&u(e,t,n,i,a);return!0!==o&&h["_"+c]({message:e,url:t,lineNumber:n,columnNumber:i,error:a,evt:C.event}),o},g.autoExceptionInstrumented=!0),h}(cfg.cfg),(C[E]=n).queue&&0===n.queue.length?(n.queue.push(e),n.trackPageView({})):e();})({
src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag
onInit: function (sdk) {
    sdk.addTelemetryInitializer(function (envelope) {
    envelope.data = envelope.data || {};
    envelope.data.someField = 'This item passed through my telemetry initializer';
    });
}, // Once the application insights instance has loaded and initialized this method will be called
// sri: false, // Custom optional value to specify whether fetching the snippet from integrity file and do integrity check
cfg: { // Application Insights Configuration
    connectionString: "YOUR_CONNECTION_STRING"
}});
</script>

テレメトリ項目で使用できる非カスタム プロパティの概要については、「 Application Insights Export Data Model」を参照してください。

必要な数の初期化子を追加できます。 これらは、追加された順序で呼び出されます。

ApplicationInsights.config のトラブルシューティング

  • 完全修飾型名とアセンブリ名が正しいことを確認します。
  • applicationinsights.config ファイルが出力ディレクトリにあり、最近の変更が含まれていることを確認します。

クラウド ロール名とクラウド ロール インスタンスを追加する

テレメトリ初期化子を使用して、 ai.cloud.role タグと ai.cloud.roleInstance タグを設定します。 これらのタグは、Azure Monitor の アプリケーション マップ でのコンポーネントの表示方法を定義します。

appInsights.queue.push(() => {
appInsights.addTelemetryInitializer((envelope) => {
  envelope.tags["ai.cloud.role"] = "your role name";
  envelope.tags["ai.cloud.roleInstance"] = "your role instance";
});
});

バージョン 2.6.0 以降、Azure Application Insights JavaScript SDK では、初期化後に無効化および再有効化できるインスタンスベースの Cookie 管理が提供されています。

disableCookiesUsage または cookieCfg.enabled 構成を使用して初期化中に Cookie を無効にした場合は、setEnabled 関数を使用して Cookie を再度有効にすることができます。

インスタンス ベースの Cookie 管理では、以前の CoreUtils グローバル関数である disableCookies()setCookie()getCookie()deleteCookie() が置き換えられます。

バージョン 2.6.0 で導入されたツリー シェイクの機能強化を利用するために、グローバル関数を使用しないようにすることをお勧めします。

ICookieMgrConfig は、2.6.0 で追加されたインスタンスベースの Cookie 管理用の Cookie 構成です。 用意されているオプションを使用して、SDK による Cookie の使用を有効または無効にすることができます。 カスタムの Cookie ドメインとパスを設定し、Cookie のフェッチ、設定、削除のための関数をカスタマイズすることもできます。

ICookieMgrConfig のオプションの定義を、次の表に示します。

名前 タイプ 既定値 説明
enabled ブーリアン ほんとう SDK の現在のインスタンスでは、このブール値を使用して、Cookie の使用が有効になっているかどうかを示します。 false の場合、この構成によって初期化される SDK のインスタンスでは、Cookie のデータの格納や読み取りは行われません。
ドメイン 文字列 null 値 カスタム Cookie ドメイン。 これは、サブドメイン間で Application Insights の Cookie を共有する場合に便利です。 指定されていない場合は、ルートの cookieDomain 値からの値を使用します。
パス 文字列 / Cookie に使用するパスを指定します。指定されていない場合、ルートの cookiePath 値からの任意の値が使用されます。
クッキーを無視する string[] 未定義 無視する Cookie 名を指定します。これにより、一致する Cookie 名は読み取りも書き込みもされません。 明示的に消去または削除される可能性はあります。 blockedCookies の構成で名前を繰り返す必要はありません。 (v2.8.8 以降)
ブロックされたクッキー string[] 未定義 書き込みしない Cookie 名を指定します。 Cookie 名の作成や更新は禁止されますが、ignoreCookies にも含まれていない限り、読み取ることはできます。 明示的に消去または削除される可能性はあります。 指定しない場合、既定値は ignoreCookies と同じリストになります。 (v2.8.8 以降)
クッキーを取得する (name: string) => string null 値 指定された Cookie 値をフェッチするための関数。指定されていない場合は、内部のクッキー解析およびキャッシュを使用します。
setCookie(クッキー設定) (name: string, value: string) => void null 値 指定した値で指定された Cookie を設定する関数。Cookie を追加または更新するときにのみ呼び出されます。
クッキー削除 (name: string, value: string) => void null 値 指定された値で指定した Cookie を削除する関数。Cookie が追加されるのか削除されるのか判断するために値を解析する必要がないように setCookie とは別になっています。 指定されない場合は、内部の Cookie 解析およびキャッシュが使用されます。

ソース マップ

ソース マップのサポートは、例外テレメトリのミニファイ処理された呼び出し履歴をアンミニファイ処理する機能を使用して、ミニファイ処理された JavaScript コードをデバッグするのに役立ちます。

  • [例外の詳細] パネルの現在のすべての統合と互換性があります
  • SDK のアップグレードを必要とせずに、Node.JS を含むすべての現在および将来の JavaScript SDK をサポートします

Application Insights では、Azure Storage アカウントの BLOB コンテナーに対するソース マップのアップロードがサポートされています。 ソース マップを使用して、[エンド ツー エンド トランザクションの詳細] ページで見つかった呼び出し履歴をアンミニファイ処理することができます。 また、ソース マップを使用して、JavaScript SDK または Node.js SDK によって送信されたすべての例外をアンミニファイ処理することもできます。

ストレージ アカウントにリンクすることで呼び出し履歴をアンミニファイ処理するオプションの選択を示すスクリーンショット。

新しいストレージ アカウントと BLOB コンテナーを作成する

ストレージ アカウントまたは BLOB コンテナーが既にある場合は、このステップを省略できます。

  1. 新しいストレージ アカウントを作成します

  2. ストレージ アカウント内に BLOB コンテナーを作成します。 ソース マップに公的にアクセスできないようにするには、[Public access level](パブリック アクセス レベル)[非公開] に設定します。

    コンテナーのアクセス レベルを [非公開] に設定するスクリーンショット。

ソース マップを BLOB コンテナーにプッシュする

構成済みの BLOB コンテナーにソース マップを自動的にアップロードするように構成することで、継続的デプロイ パイプラインをストレージ アカウントと統合します。

Azure Blob Storage コンテナーのフォルダー構造がソース マップのコンパイルおよびデプロイ時のフォルダー構造と同じであれば、ソース マップを Azure Blob Storage コンテナーにアップロードできます。 一般的なユース ケースは、1.2.3/static/js/main.js のように、デプロイ フォルダーにそのバージョンでプレフィックスを付けることです。 sourcemaps という名前の Azure BLOB コンテナーを使用してアンミニファイ処理すると、パイプラインでは sourcemaps/1.2.3/static/js/main.js.map にあるソース マップのフェッチが試行されます。

Azure Pipelines を使用してアプリケーションの継続的なビルドとデプロイを行っている場合は、Azure ファイル コピー タスクをパイプラインに追加して、ソース マップを自動的にアップロードします。

ソース マップを Azure Blob Storage にアップロードするために、Azure ファイル コピー タスクをパイプラインに追加するスクリーンショット。

ソース マップのストレージ アカウントで Application Insights リソースを構成する

ソース マップのストレージ アカウントを使用して Application Insights リソースを構成するには、2 つのオプションがあります。

エンドツーエンド トランザクションの詳細タブ

[エンド ツー エンド トランザクションの詳細] タブで、[アンミニファイ処理] を選択します。 構成されていない場合は、リソースを構成します。

  1. Azure portal で、ミニファイ処理された例外の詳細が表示されます。
  2. [Unminify]\(アンミニファイ処理する\) を選択します。
  3. リソースが構成されていない場合は、構成します。
[プロパティ] タブ

Application Insights リソースにリンクされているストレージ アカウントまたは BLOB コンテナーを構成または変更するには、次の手順を実施します。

  1. Application Insights リソースの [プロパティ] タブに移動します。

  2. [Change source map Blob Container](ソース マップ BLOB コンテナーの変更) を選択します。

  3. ソース マップ コンテナーとして別の BLOB コンテナーを選択します。

  4. [ 適用] を選択します。

    [プロパティ] ペインで選択した Azure BLOB コンテナーの再構成を示すスクリーンショット。

アンミニファイ処理された呼び出し履歴を表示する

アンミニファイ処理された呼び出し履歴を表示するには、Azure portal で例外テレメトリ項目を選択し、呼び出し履歴に一致するソース マップを見つけて、ソース マップを Azure portal の呼び出し履歴にドラッグ アンド ドロップします。 ソース マップの名前は、スタック フレームのソース ファイルと同じで、map 拡張子が付いている必要があります。

JavaScript アプリケーションのソース マップのサポートに関連する問題が発生した場合は、「JavaScript アプリケーション のソース マップのサポートに関するトラブルシューティング」を参照してください。

アンミニファイ処理する機能を示すアニメーション。

ツリー シェイク

ツリー シェイクにより、最終的な JavaScript バンドルから未使用のコードが削除されます。

ツリー シェイクを利用するには、SDK の必要なコンポーネントのみをコードにインポートします。 そうすることで、未使用のコードは最終的なバンドルに含まれなくなり、サイズが小さくなり、パフォーマンスが向上します。

ツリー シェイク機能強化と推奨事項

バージョン 2.6.0 では、ツリーシェイク アルゴリズムのサポートを向上させるために、以下の静的ヘルパー クラスの内部使用を非推奨にし、削除しました。 これにより、npm パッケージで未使用のコードを安全に削除できます。

  • CoreUtils
  • EventHelper
  • Util
  • UrlHelper
  • DateTimeUtils
  • ConnectionStringParser

関数はモジュールから最上位レベルのルートとしてエクスポートされるようになり、コードのリファクタリングが容易になり、ツリー シェイクが改善されました。

静的クラスは、新しいエクスポートされた関数を参照する const オブジェクトに変更され、参照をさらにリファクタリングするために今後の変更が計画されています。

ツリー シェイクで非推奨の関数とその置き換え

このセクションは、非推奨の関数を使用していて、パッケージ サイズを最適化したい場合にのみ適用されます。 サイズを削減し、Internet Explorer のすべてのバージョンをサポートするには、置換関数を使用することをお勧めします。

Existing 代替
CoreUtils @microsoft/applicationinsights-core-js
CoreUtils._canUseCookies なし。 すべての CoreUtils 参照が最終的なコードに含まれるため、使用しないでください。
クッキーの処理をリファクタリングして、appInsights.getCookieMgr().setEnabled(true/false) を使用して値を設定し、appInsights.getCookieMgr().isEnabled() で値を確認します。
CoreUtils.isTypeof isTypeof
CoreUtils.isUndefined isUndefined
CoreUtils.isNullOrUndefined nullまたは未定義であるか
CoreUtils.hasOwnProperty hasOwnProperty
CoreUtils.isFunction isFunction
CoreUtils.isObject isObject
CoreUtils.isDate(コアユーティルズのisDate関数) isDate
CoreUtils.isArray isArray
CoreUtils.isError isError
CoreUtils.isString isString
CoreUtils.isNumber isNumber
CoreUtils.isBoolean isBoolean
CoreUtils.toISOString toISOString または getISOString
CoreUtils.arrForEach arrForEach
CoreUtils.arrIndexOf arrIndexOf
CoreUtils.arrMap arrMap
CoreUtils.arrReduce arrReduce
CoreUtils.strTrim (文字列トリム機能) strTrim
CoreUtils.objCreate objCreateFn
CoreUtils.objKeys objKeys
CoreUtils.objDefineAccessors objDefineAccessors
CoreUtils.addEventHandler addEventHandler (アドイベントハンドラー)
CoreUtils.dateNow dateNow
CoreUtils.isIE isIE
CoreUtils.disableCookies disableCookies
どちらかを参照すると、下位互換性のために CoreUtils が参照されます。
Cookie 処理をリファクタリングして appInsights.getCookieMgr().setEnabled(false) を使用するようにしてください
CoreUtils.newGuid newGuid
CoreUtils.perfNow パーフナウ
CoreUtils.newId newId
CoreUtils.randomValue ランダム値
CoreUtils.random32 random32
CoreUtils.mwcRandomSeed mwcRandomSeed
CoreUtils.mwcRandom32 mwcRandom32
CoreUtils.generateW3CId W3CIdを生成する
EventHelper @microsoft/applicationinsights-core-js
EventHelper.Attach(イベントヘルパー.アタッチ) イベントをアタッチする
EventHelper.AttachEvent イベントをアタッチする
EventHelper.Detach イベントを解除する
EventHelper.DetachEvent イベントを解除する
Util @microsoft/applicationinsights-common-js
Util.NotSpecified strNotSpecified
Util.createDomEvent DOMイベントを作成する
Util.ストレージを無効にする utlDisableStorage (ストレージ無効化)
Util.isInternalApplicationInsightsEndpoint isInternalApplicationInsightsEndpoint (内部アプリケーションインサイトエンドポイント)
Util.canUseLocalStorage utlCanUseLocalStorage
Util.getStorage utlGetLocalStorage
Util.setStorage utlSetLocalStorage
Util.removeStorage utlRemoveStorage
Util.canUseSessionStorage utlCanUseSessionStorage
Util.getSessionStorageKeys utlGetSessionStorageKeys
Util.getSessionStorage utlGetSessionStorage
Util.setSessionStorage utlSetSessionStorage (セッションストレージの設定)
Util.removeSessionStorage(ユーティル.リムーブセッションストレージ) utlRemoveSessionStorage (セッションストレージ削除)
Util.disableCookies(クッキーを無効にする) disableCookies
どちらかを参照すると、下位互換性のために CoreUtils が参照されます。
Cookie 処理をリファクタリングして appInsights.getCookieMgr().setEnabled(false) を使用するようにしてください
Util.canUseCookies クッキーを使用可能
どちらかを参照すると、下位互換性のために CoreUtils が参照されます。
Cookie 処理をリファクタリングして appInsights.getCookieMgr().isEnabled() を使用するようにしてください
Util.がSameSiteNoneを許可しない uaDisallowsSameSiteNone(UAがSameSiteNoneを許可しません)
Util.setCookie coreSetCookie
参照すると、下位互換性のために CoreUtils が参照されます。
Cookie 処理をリファクタリングして appInsights.getCookieMgr().set(name: string, value: string) を使用するようにしてください
Util.stringToBoolOrDefault stringToBoolOrDefault
Util.getCookie coreGetCookie
参照すると、下位互換性のために CoreUtils が参照されます。
Cookie 処理をリファクタリングして appInsights.getCookieMgr().get(name: string) を使用するようにしてください
ユーティル.クッキーを削除する coreDeleteCookie
参照すると、下位互換性のために CoreUtils が参照されます。
Cookie 処理をリファクタリングして appInsights.getCookieMgr().del(name: string, path?: string) を使用するようにしてください
Util.trim strTrim
ユーティル.新ID newId
ユーティル.ランダム32 ---
置き換えはありません。コアの random32(true) を使用するようにコードをリファクタリングしてください
Util.generateW3CId W3CIdを生成する
Util.isArray isArray
Util.isError isError
Util.isDate isDate
Util.toISOStringForIE8 toISOString
Util.getIEVersion IEのバージョンを取得
Util.msToTimeSpan msToTimeSpan
Util.isCrossOriginError isCrossOriginError
Util.dump オブジェクトをダンプする
Util.getExceptionName 例外名を取得する
Util.addEventHandler イベントをアタッチする
Util.IsBeaconApiSupported(ビーコンAPIがサポートされているかどうかの確認) ビーコンAPIがサポートされているか
Util.getExtension(ユーティル・ゲットエクステンション) getExtensionByName
UrlHelper @microsoft/applicationinsights-common-js
UrlHelper.parseUrl urlParseUrl
UrlHelper.getAbsoluteUrl urlGetAbsoluteUrl
UrlHelper.getPathName urlGetPathName (URLからパス名を取得する)
UrlHelper.getCompeteUrl urlGetCompleteUrl
UrlHelper.parseHost urlParseHost
UrlHelper.parseFullHost urlParseFullHost
DateTimeUtils @microsoft/applicationinsights-common-js
DateTimeUtils.Now dateTimeUtilsNow
DateTimeUtils.GetDuration dateTimeUtilsDuration (デートタイムユーティルズデュレーション)
ConnectionStringParser @microsoft/applicationinsights-common-js
ConnectionStringParser.parse 接続文字列を解析

サービスの通知

サービス通知は SDK に組み込まれている機能であり、Application Insights へのテレメトリ フローが中断されないようにするための実用的な推奨事項を提供します。 Application Insights 内で、通知を例外メッセージとして表示できます。 Microsoft では、お客様の SDK 設定に基づいて通知がお客様に関連していることを確認し、推奨事項の緊急性に基づいて詳細度を調整します。 サービス通知はオンのままにしておくことをお勧めしますが、featureOptIn 構成を使用してオプトアウトすることができます。

現在、アクティブな通知は送信されません。

サービス通知は、通知を制御および更新するためにパブリック JSON ファイルを定期的にポーリングする JavaScript SDK で管理されます。 JavaScript SDK によるポーリングを無効にするには、featureOptIn モードを無効にします。

トラブルシューティング

専用のトラブルシューティングに関する記事をご覧ください。

次のステップ