Application Insights でのデータの収集、保持、保存Data collection, retention, and storage in Application Insights

ご利用のアプリに Azure Application Insights SDK をインストールすると、アプリに関するテレメトリがクラウドに送信されます。When you install Azure Application Insights SDK in your app, it sends telemetry about your app to the Cloud. 当然ながら、担当開発者は、送信されるデータ、データに対して発生すること、それを制御する方法について知りたいと考えます。Naturally, responsible developers want to know exactly what data is sent, what happens to the data, and how they can keep control of it. 特に、機密データの送信、その保存先、安全性が重要です。In particular, could sensitive data be sent, where is it stored, and how secure is it?

まず、手短に言えば次のようになります。First, the short answer:

  • 「難しい設定なしで」動く標準の製品利用統計情報モジュールは、多くの場合、機密データをサービスに送信しません。The standard telemetry modules that run "out of the box" are unlikely to send sensitive data to the service. 製品利用統計情報は、負荷指標、パフォーマンス指標、利用率指標、例外レポート、その他の診断データに関連します。The telemetry is concerned with load, performance and usage metrics, exception reports, and other diagnostic data. 診断レポートに表示される主なユーザー データは URL ですが、いかなる場合も、アプリは URL にプレーンテキストで機密データを入力するべきではありません。The main user data visible in the diagnostic reports are URLs; but your app shouldn't in any case put sensitive data in plain text in a URL.
  • 診断と監視利用に役立つ追加のカスタム製品利用統計情報を送信するコードを記述できます。You can write code that sends additional custom telemetry to help you with diagnostics and monitoring usage. (この拡張機能は Application Insights の優れた機能です。)手違いにより、このコードを記述し、個人データやその他の機密データが含まれてしまうことはあります。(This extensibility is a great feature of Application Insights.) It would be possible, by mistake, to write this code so that it includes personal and other sensitive data. アプリケーションがそのようなデータを利用する場合、記述するあらゆるコードに徹底したレビュー プロセスを適用してください。If your application works with such data, you should apply a thorough review process to all the code you write.
  • アプリを開発し、テストするとき、SDK により送信される内容は簡単に調査できます。While developing and testing your app, it's easy to inspect what's being sent by the SDK. データは IDE とブラウザーのデバッグ出力ウィンドウに表示されます。The data appears in the debugging output windows of the IDE and browser.
  • 新しい Application Insights リソースを作成するときに場所を選択できます。You can select the location when you create a new Application Insights resource. リージョンごとの Application Insights の可用性の詳細については、こちらを参照してください。Know more about Application Insights availability per region here.
  • 収集されたデータを確認します。これには、ある状況では許可されても他の状況では許可されないデータが含まれている可能性があるためです。Review the collected data, as this may include data that is allowed in some circumstances but not others. 典型的な例は、デバイス名です。A good example of this is Device Name. サーバーからのデバイス名はプライバシーに影響を与えず便利ですが、電話やノート PC のデバイス名はプライバシーに影響を与え、あまり役に立たない場合があります。The device name from a server has no privacy impact and is useful, but a device name from a phone or laptop may have a privacy impact and be less useful. 主にサーバーを対象にして開発された SDK は、既定でデバイス名を収集することがあります。これは、通常のイベントと例外の両方で、上書きしなければならない場合があります。An SDK developed primarily to target servers, would collect device name by default, and this may need to be overwritten in both normal events and exceptions.

この記事の残りの部分では、以上の答えについてもっと詳しく説明します。The rest of this article elaborates more fully on these answers. 設計は自己完結型であり、直近のチームに入っていない同僚にも見せることができます。It's designed to be self-contained, so that you can show it to colleagues who aren't part of your immediate team.

Application Insights とは何か?What is Application Insights?

Azure Application Insights は、ライブ アプリケーションのパフォーマンスと使いやすさの改善に役立つ、Microsoft が提供するサービスです。Azure Application Insights is a service provided by Microsoft that helps you improve the performance and usability of your live application. テスト中と公開後またはデプロイ後の両方で、実行中のアプリケーションを常時監視します。It monitors your application all the time it's running, both during testing and after you've published or deployed it. Application Insights が作成するグラフや表を見ると、たとえば、1 日の中でユーザー数が最も多い時間帯、アプリの反応性、アプリが依存している外部サービスのサービス性能などがわかります。Application Insights creates charts and tables that show you, for example, what times of day you get most users, how responsive the app is, and how well it is served by any external services that it depends on. クラッシュ、エラー、パフォーマンス問題が発生した場合、製品利用統計情報データを詳しく調査し、原因を診断できます。If there are crashes, failures or performance issues, you can search through the telemetry data in detail to diagnose the cause. アプリの可用性やパフォーマンスに変化があった場合、サービスからメールが届きます。And the service will send you emails if there are any changes in the availability and performance of your app.

この機能を入手するには、アプリケーションに Application Insights SDK をインストールします。インストールすることでそのコードの一部になります。In order to get this functionality, you install an Application Insights SDK in your application, which becomes part of its code. アプリの実行中、SDK はその操作を監視し、製品利用統計情報を Application Insights サービスに送信します。When your app is running, the SDK monitors its operation and sends telemetry to the Application Insights service. これは Microsoft Azure がホストするクラウド サービスです。This is a cloud service hosted by Microsoft Azure. ただし、Application Insights は、Azure にホストされているアプリケーションだけでなく、あらゆるアプリケーションで動作します。(But Application Insights works for any applications, not just applications that are hosted in Azure.)

Application Insights サービスは製品利用統計情報を保存し、分析します。The Application Insights service stores and analyzes the telemetry. 分析を確認し、保存されている製品利用統計情報を検索するには、Azure アカウントにサインインし、アプリケーションの Application Insights リソースを開きます。To see the analysis or search through the stored telemetry, you sign in to your Azure account and open the Application Insights resource for your application. データへのアクセスをチームの他のメンバーや指定した Azure サブスクライバーと共有することもできます。You can also share access to the data with other members of your team, or with specified Azure subscribers.

Application Insights サービスから、たとえば、データベースや外部ツールにデータをエクスポートできます。You can have data exported from the Application Insights service, for example to a database or to external tools. サービスから取得した特別なキーを各ツールに提供します。You provide each tool with a special key that you obtain from the service. キーは必要に応じて取り消すことができます。The key can be revoked if necessary.

Application Insights SDK はさまざまなアプリケーション タイプに利用できます。独自の Java EE サーバー、ASP.NET サーバー、または Azure にホストされている Web サービス、Web クライアント (Web ページで実行されるコード)、デスクトップのアプリとサービス、デバイス アプリ (Windows Phone、iOS、Android) などです。Application Insights SDKs are available for a range of application types: web services hosted in your own Java EE or ASP.NET servers, or in Azure; web clients - that is, the code running in a web page; desktop apps and services; device apps such as Windows Phone, iOS, and Android. これらはすべて同じサービスに製品利用統計情報を送信します。They all send telemetry to the same service.

どのようなデータが収集されますか。What data does it collect?

データ ソースは 3 つあります。There are three sources of data:

  • SDK は開発時または実行時にアプリと統合します。The SDK, which you integrate with your app either in development or at run time. アプリケーションの種類が違えば SDK も違います。There are different SDKs for different application types. Web ページ用の SDK もあります。ページと共にエンド ユーザーのブラウザーに読み込まれます。There's also an SDK for web pages, which loads into the end user's browser along with the page.

    • それぞれの SDK にはさまざまな モジュールがあり、さまざまな手法でさまざまな種類の製品利用統計情報を収集します。Each SDK has a number of modules, which use different techniques to collect different types of telemetry.
    • デプロイ時に SDK をインストールする場合、標準のモジュールに加え、その API を利用し、独自の製品利用統計情報を送信できます。If you install the SDK in development, you can use its API to send your own telemetry, in addition to the standard modules. このカスタム製品利用統計情報にあらゆるデータを含め、送信できます。This custom telemetry can include any data you want to send.
  • 一部の Web サーバーには、アプリと共に実行され、CPU、メモリ、ネットワーク占有率に関する製品利用統計情報を送信するエージェントもあります。In some web servers, there are also agents that run alongside the app and send telemetry about CPU, memory, and network occupancy. たとえば、Azure VM、Docker ホスト、Java EE サーバーにそのようなエージェントがあります。For example, Azure VMs, Docker hosts, and Java EE servers can have such agents.

  • 可用性テスト は Microsoft が実行するプロセスであり、定期的な間隔で要求を Web アプリに送信します。Availability tests are processes run by Microsoft that send requests to your web app at regular intervals. 結果は Application Insights サービスに送信されます。The results are sent to the Application Insights service.

どのような種類のデータが収集されますか。What kinds of data are collected?

主なカテゴリは次のとおりです。The main categories are:

  • Web サーバー製品利用統計情報 -HTTP 要求。Web server telemetry - HTTP requests. URI、要求の処理にかかる時間、応答コード、クライアント IP アドレス。Uri, time taken to process the request, response code, client IP address. Session id.Session id.
  • Web ページ - ページ、ユーザーとセッションの数。Web pages - Page, user and session counts. ページの読み込み時間。Page load times. 例外。Exceptions. AJAX 呼び出し。Ajax calls.
  • パフォーマンス カウンター - メモリ、CPU、IO、ネットワーク占有率。Performance counters - Memory, CPU, IO, Network occupancy.
  • クライアントとサーバーのコンテキスト - OS、ロケール、デバイスの種類、ブラウザー、画面の解像度。Client and server context - OS, locale, device type, browser, screen resolution.
  • 例外とクラッシュ - スタック ダンプbuild id、CPU タイプ。Exceptions and crashes - stack dumps, build id, CPU type.
  • 依存関係 - REST、SQL、AJAX など、外部サービスの呼び出し。Dependencies - calls to external services such as REST, SQL, AJAX. URI または接続文字列、期間、成功、コマンド。URI or connection string, duration, success, command.
  • 可用性テスト - テストとステップの期間、応答。Availability tests - duration of test and steps, responses.
  • トレース ログカスタム テレメトリ - コード化してログまたはテレメトリに入れるすべてTrace logs and custom telemetry - anything you code into your logs or telemetry.

詳細More detail.

収集された内容はどのような方法で検証しますか。How can I verify what's being collected?

Visual Studio でアプリを開発している場合、デバッグ モードでアプリを実行してください (F5)。If you're developing the app using Visual Studio, run the app in debug mode (F5). 製品利用統計情報は出力ウィンドウに表示されます。The telemetry appears in the Output window. そこから、それをコピーし、JSON として書式設定すれば、調査が簡単になります。From there, you can copy it and format it as JSON for easy inspection.

Visual Studio のデバッグ モードでのアプリの実行を示すスクリーンショット。

[診断] ウィンドウには、さらに読みやすいビューもあります。There's also a more readable view in the Diagnostics window.

Web ページの場合、ブラウザーのデバッグ ウィンドウを開きます。For web pages, open your browser's debugging window.

F12 を押し、[ネットワーク] タブを開きます。

送信前に製品利用統計情報を絞り込むコードを記述できますか。Can I write code to filter the telemetry before it is sent?

製品利用統計情報プロセッサ プラグインを記述することで可能です。This would be possible by writing a telemetry processor plugin.

データはどれだけの期間保持されますか。How long is the data kept?

生データ ポイント (つまり、Analytics でクエリを実行したり Search で調べることができる項目) は、最大 730 日間保持されます。Raw data points (that is, items that you can query in Analytics and inspect in Search) are kept for up to 730 days. 30、60、90、120、180、270、365、550 または 730 日間のリテンション期間を選択できます。You can select a retention duration of 30, 60, 90, 120, 180, 270, 365, 550 or 730 days. 730 日以上データを保持する必要がある場合は、連続エクスポートを使用して、データ インジェスト中にストレージ アカウントにコピーすることができます。If you need to keep data longer than 730 days, you can use Continuous Export to copy it to a storage account during data ingestion.

90 日より長く保持されるデータには、追加料金が発生します。Data kept longer than 90 days will incur addition charges. Application Insights の価格の詳細については、「Azure Monitor の価格」ページを参照してください。Learn more about Application Insights pricing on the Azure Monitor pricing page.

集計されたデータ (つまり、メトリックス エクスプローラーに表示されるカウント、平均、その他の統計データ) は、1 分の詳細度であれば 90 日の期間にわたって保持されます。Aggregated data (that is, counts, averages and other statistical data that you see in Metric Explorer) are retained at a grain of 1 minute for 90 days.

デバッグ スナップショットは 15 日間格納されます。Debug snapshots are stored for 15 days. この保持ポリシーは、アプリケーションごとに設定されます。This retention policy is set on a per-application basis. この値を増やす必要がある場合は、Azure portal でサポート ケースを開くことによって増加を要求できます。If you need to increase this value, you can request an increase by opening a support case in the Azure portal.

誰がデータにアクセスできますか。Who can access the data?

お客様と、組織アカウントを持っている場合はチーム メンバーが、データを見ることができます。The data is visible to you and, if you have an organization account, your team members.

お客様とチーム メンバーはデータをエクスポートできます。また、他の場所にデータをコピーしたり、第三者にデータを渡したりすることもできます。It can be exported by you and your team members and could be copied to other locations and passed on to other people.

アプリから Application Insights に送信された情報を Microsoft はどのように利用しますか。What does Microsoft do with the information my app sends to Application Insights?

Microsoft は、お客様にサービスを提供する目的でのみデータを使用します。Microsoft uses the data only in order to provide the service to you.

データが保持されている場所はどこですか。Where is the data held?

  • 新しい Application Insights リソースを作成するときに場所を選択できます。You can select the location when you create a new Application Insights resource. リージョンごとの Application Insights の可用性の詳細については、こちらを参照してください。Know more about Application Insights availability per region here.

データのセキュリティは保たれますか。How secure is my data?

Application Insights は Azure サービスのひとつです。Application Insights is an Azure Service. セキュリティ ポリシーについては、Azure のセキュリティ、プライバシー、およびコンプライアンスに関するホワイト ペーパーをご覧ください。Security policies are described in the Azure Security, Privacy, and Compliance white paper.

データは、Microsoft Azure サーバーに保管されます。The data is stored in Microsoft Azure servers. Azure portal のアカウントの場合、アカウントの制限は Azure のセキュリティ、プライバシー、コンプライアンスの文書に記載されています。For accounts in the Azure portal, account restrictions are described in the Azure Security, Privacy, and Compliance document.

Microsoft のスタッフによるデータへのアクセスは制限されます。Access to your data by Microsoft personnel is restricted. Microsoft は、Application Insights の使用をサポートするために必要であれば、ユーザーからアクセス許可を得た上でデータにアクセスします。We access your data only with your permission and if it is necessary to support your use of Application Insights.

このほか、Application Insights の機能の向上に役立てるために、すべてのお客様のアプリケーションのデータ (データ レート、トレースの平均サイズなど) を集計のうえ使用します。Data in aggregate across all our customers' applications (such as data rates and average size of traces) is used to improve Application Insights.

だれかのテレメトリが Application Insights データに干渉する可能性はありますか。Could someone else's telemetry interfere with my Application Insights data?

Web ページのコード内にインストルメンテーション キーがある場合には、だれかがそれを使用してお客様のアカウントに追加のテレメトリを送信することができます。They could send additional telemetry to your account by using the instrumentation key, which can be found in the code of your web pages. 追加データの量が多いと、アプリのパフォーマンスと使用状況がメトリックに適切に示されなくなる可能性があります。With enough additional data, your metrics would not correctly represent your app's performance and usage.

コードを他のプロジェクトと共有する場合は、インストルメンテーション キーを必ず削除してください。If you share code with other projects, remember to remove your instrumentation key.

データは暗号化されますか。Is the data encrypted?

すべてのデータが、保存時とデータ センター間での移動時に暗号化されます。All data is encrypted at rest and as it moves between data centers.

アプリケーションから Application Insights サーバーに送信されるときにデータは暗号化されますか。Is the data encrypted in transit from my application to Application Insights servers?

はい。ほぼすべての SDK からポータル (Web サーバー、デバイス、HTTPS Web ページなど) への送信に https が使用されます。Yes, we use https to send data to the portal from nearly all SDKs, including web servers, devices, and HTTPS web pages.

SDK では一時的なローカル ストレージが作成されますか?Does the SDK create temporary local storage?

はい。特定のテレメトリ チャネルは、エンドポイントに到達できない場合、データをローカルで保持します。Yes, certain Telemetry Channels will persist data locally if an endpoint cannot be reached. どのフレームワークおよびテレメトリ チャネルが影響を受けるかを以下で確認してください。Please review below to see which frameworks and telemetry channels are affected.

ローカル ストレージを利用するテレメトリ チャネルは、TEMP または APPDATA ディレクトリ内に一時ファイルを作成します。これらは、アプリケーションを実行している特定のアカウントだけに制限されます。Telemetry channels that utilize local storage create temp files in the TEMP or APPDATA directories, which are restricted to the specific account running your application. これは、エンドポイントが一時的に使用できなくなったか、または調整制限に達した場合に発生する可能性があります。This may happen when an endpoint was temporarily unavailable or you hit the throttling limit. この問題が解決されると、テレメトリ チャネルは、すべての新しいデータおよび保持されているデータの送信を再開します。Once this issue is resolved, the telemetry channel will resume sending all the new and persisted data.

この保持されているデータはローカルでは暗号化されません。This persisted data is not encrypted locally. これが問題になる場合は、データを確認して、プライベート データのコレクションを制限します。If this is a concern, review the data and restrict the collection of private data. 詳細については、「プライベート データをエクスポートして削除する方法」を参照してください。(For more information, see How to export and delete private data.)

顧客がこのディレクトリを特定のセキュリティ要件で構成する必要がある場合は、フレームワークごとに構成できます。If a customer needs to configure this directory with specific security requirements, it can be configured per framework. アプリケーションを実行しているプロセスにこのディレクトリへの書き込みアクセス権があることを確認してください。ただし、意図しないユーザーによってテレメトリが読み取られることを防ぐために、このディレクトリが保護されていることも確認してください。Please make sure that the process running your application has write access to this directory, but also make sure this directory is protected to avoid telemetry being read by unintended users.

JavaJava

C:\Users\username\AppData\Local\Temp はデータを保持するために使用されます。C:\Users\username\AppData\Local\Temp is used for persisting data. この場所は config ディレクトリからは構成できす、このフォルダーにアクセスするためのアクセス許可は、必要な資格情報を持つ特定のユーザーに制限されています。This location isn't configurable from the config directory and the permissions to access this folder are restricted to the specific user with required credentials. 詳細については、実装に関するページを参照してください。(For more information, see implementation.)

.NET.NET

既定では、ServerTelemetryChannel は、現在のユーザーのローカル アプリ データ フォルダー %localAppData%\Microsoft\ApplicationInsights または一時フォルダー %TMP% を使用します。By default ServerTelemetryChannel uses the current user’s local app data folder %localAppData%\Microsoft\ApplicationInsights or temp folder %TMP%. (ここにある実装を参照してください。)(See implementation here.)

構成ファイルを使用する場合:Via configuration file:

<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel,   Microsoft.AI.ServerTelemetryChannel">
    <StorageFolder>D:\NewTestFolder</StorageFolder>
</TelemetryChannel>

コードを使用する場合:Via code:

  • 構成ファイルから ServerTelemetryChannel を削除します。Remove ServerTelemetryChannel from configuration file
  • 構成に次のスニペットを追加します。Add this snippet to your configuration:
    ServerTelemetryChannel channel = new ServerTelemetryChannel();
    channel.StorageFolder = @"D:\NewTestFolder";
    channel.Initialize(TelemetryConfiguration.Active);
    TelemetryConfiguration.Active.TelemetryChannel = channel;
    

NetCoreNetCore

既定では、ServerTelemetryChannel は、現在のユーザーのローカル アプリ データ フォルダー %localAppData%\Microsoft\ApplicationInsights または一時フォルダー %TMP% を使用します。By default ServerTelemetryChannel uses the current user’s local app data folder %localAppData%\Microsoft\ApplicationInsights or temp folder %TMP%. (ここにある実装を参照してください。)(See implementation here.)

Linux 環境では、ストレージ フォルダーが指定されていない限り、ローカル ストレージは無効になります。In a Linux environment, local storage will be disabled unless a storage folder is specified.

注意

リリース 2.15.0-beta3 以降、ローカル ストレージは Linux、Mac、Windows で自動的に作成されるようになりました。With the release 2.15.0-beta3 and greater local storage is now automatically created for Linux, Mac, and Windows. Windows 以外のシステムの場合、次のロジックに基づいてローカル ストレージ フォルダーが自動的に作成されます。For non Windows systems the SDK will automatically create a local storage folder based on the following logic:

  • ${TMPDIR} - ${TMPDIR} 環境変数が設定されている場合、この場所が使用されます。${TMPDIR} - if ${TMPDIR} environment variable is set this location is used.
  • /var/tmp - 前述の場所が存在しない場合は、/var/tmp を試します。/var/tmp - if the previous location does not exist we try /var/tmp.
  • /tmp - 前述のどちらの場所も存在しない場合は、tmp を試します。/tmp - if both the previous locations do not exist we try tmp.
  • これらの場所のいずれも存在しない場合、ローカル ストレージは作成されません。以前と同様に、手動による構成が必要になります。If none of those locations exist local storage is not created and manual configuration is still required. 実装の詳細については、こちらをご覧くださいFor full implementation details.

次のコード スニペットは、Startup.cs クラスの ConfigureServices() メソッドで ServerTelemetryChannel.StorageFolder を設定する方法を示しています。The following code snippet shows how to set ServerTelemetryChannel.StorageFolder in the ConfigureServices() method of your Startup.cs class:

services.AddSingleton(typeof(ITelemetryChannel), new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"});

詳細については、AspNetCore のカスタム構成に関するページを参照してください。(For more information, see AspNetCore Custom Configuration.)

Node.jsNode.js

既定では、%TEMP%/appInsights-node{INSTRUMENTATION KEY} はデータを保持するために使用されます。By default %TEMP%/appInsights-node{INSTRUMENTATION KEY} is used for persisting data. このフォルダーにアクセスするためのアクセス許可は、現在のユーザーと管理者に制限されています。Permissions to access this folder are restricted to the current user and Administrators. (ここにある実装を参照してください。)(See implementation here.)

フォルダー プレフィックス appInsights-node は、Sender.ts にある静的変数 Sender.TEMPDIR_PREFIX のランタイム値を変更することによって上書きできます。The folder prefix appInsights-node can be overridden by changing the runtime value of the static variable Sender.TEMPDIR_PREFIX found in Sender.ts.

JavaScript (ブラウザー)JavaScript (browser)

データを永続化するには、HTML5 セッション ストレージを使用します。HTML5 Session Storage is used to persist data. AI_bufferAI_sent_buffer という 2 つの別のバッファーが使用されます。Two separate buffers are used: AI_buffer and AI_sent_buffer. バッチ処理され、送信を待機しているテレメトリは AI_buffer に格納されます。Telemetry that is batched and waiting to be sent is stored in AI_buffer. 送信されたテレメトリは、インジェスト サーバーが正常に受信されたことを応答するまで AI_sent_buffer に配置されます。Telemetry that was just sent is placed in AI_sent_buffer until the ingestion server responds that it was successfully received. テレメトリが正常に受信されると、すべてのバッファーから削除されます。When telemetry is successfully received, it's removed from all buffers. 一時的なエラーが発生した場合 (たとえば、ユーザーがネットワーク接続を失った場合)、正常に受信されるか、インジェスト サーバーがテレメトリが無効であると応答するまで (たとえば、不正なスキーマ、古すぎる)、テレメトリは AI_buffer に格納されたままです。On transient failures (for example, a user loses network connectivity), telemetry remains in AI_buffer until it is successfully received or the ingestion server responds that the telemetry is invalid (bad schema or too old, for example).

テレメトリ バッファーを無効にするには、enableSessionStorageBufferfalse に設定します。Telemetry buffers can be disabled by setting enableSessionStorageBuffer to false. セッション ストレージがオフの場合、代わりにローカル アレイが永続ストレージとして使用されます。When session storage is turned off, a local array is instead used as persistent storage. JavaScript SDK はクライアント デバイス上で実行されるため、ユーザーはブラウザーの開発者ツールを介してこの格納場所にアクセスできます。Because the JavaScript SDK runs on a client device, the user has access to this storage location via their browser's developer tools.

OpenCensus PythonOpenCensus Python

既定では、OpenCensus Python SDK は現在のユーザー フォルダー %username%/.opencensus/.azure/ を使用します。By default OpenCensus Python SDK uses the current user folder %username%/.opencensus/.azure/. このフォルダーにアクセスするためのアクセス許可は、現在のユーザーと管理者に制限されています。Permissions to access this folder are restricted to the current user and Administrators. (ここにある実装を参照してください。)永続化されたデータを含むフォルダーは、テレメトリを生成した Python ファイルの名前が付けられます。(See implementation here.) The folder with your persisted data will be named after the Python file that generated the telemetry.

使用しているエクスポーターのコンストラクターで storage_path パラメーターを渡すことによって、ストレージ ファイルの場所を変更できます。You may change the location of your storage file by passing in the storage_path parameter in the constructor of the exporter you are using.

AzureLogHandler(
  connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000',
  storage_path='<your-path-here>',
)

TLS 1.2 を使用して Application Insight にデータを送信するにはどうすればよいですか。How do I send data to Application Insights using TLS 1.2?

Application Insight エンドポイントへのデータの転送時のセキュリティを保証するため、少なくとも Transport Layer Security (TLS) 1.2 を使用するようにアプリケーションを構成することを強くお勧めします。To insure the security of data in transit to the Application Insights endpoints, we strongly encourage customers to configure their application to use at least Transport Layer Security (TLS) 1.2. 以前のバージョンの TLS/SSL (Secure Sockets Layer) は脆弱であることが確認されています。現在、これらは下位互換性を維持するために使用可能ですが、推奨されていません。さらに、業界はこれらの以前のプロトコルのサポートを中止する方向へ急速に動いています。Older versions of TLS/Secure Sockets Layer (SSL) have been found to be vulnerable and while they still currently work to allow backwards compatibility, they are not recommended, and the industry is quickly moving to abandon support for these older protocols.

PCI Security Standards Council は、2018 年 6 月 30 日を期限として、TLS/SSL の以前のバージョンを無効にし、より安全なプロトコルにアップグレードすることを求めています。The PCI Security Standards Council has set a deadline of June 30, 2018 to disable older versions of TLS/SSL and upgrade to more secure protocols. Azure がレガシー サポートを廃止した場合、アプリケーション/クライアントが TLS 1.2 以上で通信できないと Application Insight にデータを送信できなくなります。Once Azure drops legacy support, if your application/clients cannot communicate over at least TLS 1.2 you would not be able to send data to Application Insights. アプリケーションの TLS のサポートをテストおよび検証する方法は、オペレーティング システム/プラットフォームのほか、アプリケーションで使用する言語/フレームワークによって異なります。The approach you take to test and validate your application's TLS support will vary depending on the operating system/platform as well as the language/framework your application uses.

アプリケーションで TLS 1.2 のみを使用するように明示的に設定することは、必要な場合を除いてお勧めしません。そうすることで、TLS 1.3 などのより新しくより安全なプロトコルを自動的に検出して利用できるようにするプラットフォーム レベルのセキュリティ機能が無効になる可能性があるためです。We do not recommend explicitly setting your application to only use TLS 1.2 unless necessary as this can break platform level security features that allow you to automatically detect and take advantage of newer more secure protocols as they become available such as TLS 1.3. アプリケーションのコードを徹底的に監査して、特定の TLS/SSL バージョンのハードコーディングを確認することをお勧めします。We recommend performing a thorough audit of your application's code to check for hardcoding of specific TLS/SSL versions.

プラットフォーム/言語に固有のガイダンスPlatform/Language specific guidance

プラットフォーム/言語Platform/Language サポートSupport 詳細情報More Information
Azure App ServiceAzure App Services サポートされています。構成が必要な場合があります。Supported, configuration may be required. サポートは 2018 年 4 月に発表されました。Support was announced in April 2018. 構成の詳細のお知らせを参照してください。Read the announcement for configuration details.
Azure Function AppAzure Function Apps サポートされています。構成が必要な場合があります。Supported, configuration may be required. サポートは 2018 年 4 月に発表されました。Support was announced in April 2018. 構成の詳細のお知らせを参照してください。Read the announcement for configuration details.
.NET.NET サポートされています。構成はバージョンによって異なります。Supported, configuration varies by version. .NET 4.7 およびそれ以前のバージョンの詳細な構成情報については、これらの手順を参照してください。For detailed configuration info for .NET 4.7 and earlier versions, refer to these instructions.
Status MonitorStatus Monitor サポートされています。構成が必要ですSupported, configuration required Status Monitor は、TLS 1.2 をサポートするために OS 構成 + .NET 構成に依存します。Status Monitor relies on OS Configuration + .NET Configuration to support TLS 1.2.
Node.jsNode.js サポートされています。v10.5.0 では構成が必要な場合があります。Supported, in v10.5.0, configuration may be required. アプリケーションに固有の構成については、公式の Node.js TLS/SSL ドキュメントを使用してください。Use the official Node.js TLS/SSL documentation for any application-specific configuration.
JavaJava サポートされています。JDK の TLS 1.2 のサポートは、JDK 6 更新プログラム 121 および JDK 7 で追加されました。Supported, JDK support for TLS 1.2 was added in JDK 6 update 121 and JDK 7. JDK 8 では、既定で TLS 1.2 が使用されます。JDK 8 uses TLS 1.2 by default.
LinuxLinux Linux ディストリビューションでは、TLS 1.2 のサポートに関して OpenSSL に依存する傾向があります。Linux distributions tend to rely on OpenSSL for TLS 1.2 support. OpenSSL の Changelog を参照して、使用している OpenSSL のバージョンがサポートされていることを確認してください。Check the OpenSSL Changelog to confirm your version of OpenSSL is supported.
Windows 8.0 - 10Windows 8.0 - 10 サポートされています。既定で有効になっています。Supported, and enabled by default. 既定の設定を使用していることを確認するには。To confirm that you are still using the default settings.
Windows Server 2012 - 2016Windows Server 2012 - 2016 サポートされています。既定で有効になっています。Supported, and enabled by default. 既定の設定を使用していることを確認するにはTo confirm that you are still using the default settings
Windows 7 SP1 および Windows Server 2008 R2 SP1Windows 7 SP1 and Windows Server 2008 R2 SP1 サポートされていますが、既定では有効になっていません。Supported, but not enabled by default. 有効にする方法の詳細については、「トランスポート層セキュリティ (TLS) のレジストリ設定」を参照してください。See the Transport Layer Security (TLS) registry settings page for details on how to enable.
Windows Server 2008 SP2Windows Server 2008 SP2 TLS 1.2 のサポートには、更新プログラムが必要です。Support for TLS 1.2 requires an update. Windows Server 2008 SP2 に TLS 1.2 のサポートを追加する更新プログラムに関するページを参照してください。See Update to add support for TLS 1.2 in Windows Server 2008 SP2.
Windows VistaWindows Vista サポートされていません。Not Supported. 該当なしN/A

Linux ディストリビューションで実行されている OpenSSL のバージョンを確認するCheck what version of OpenSSL your Linux distribution is running

インストールされている OpenSSL のバージョンを確認するには、ターミナルを開き、次のコマンドを実行します。To check what version of OpenSSL you have installed, open the terminal and run:

openssl version -a

Linux 上でテスト TLS 1.2 トランザクションを実行するRun a test TLS 1.2 transaction on Linux

Linux システムが TLS 1.2 で通信できるかどうかを確認する基本的な予備テストを実行するには、ターミナルを開いて、次のように実行してください。To run a preliminary test to see if your Linux system can communicate over TLS 1.2., open the terminal and run:

openssl s_client -connect bing.com:443 -tls1_2

Application Insights に格納される個人データPersonal data stored in Application Insights

この件については、Application Insights の個人データに関する記事に詳しく説明されています。Our Application Insights personal data article discusses this issue in-depth.

ユーザーは Application Insights を無効にできますか。Can my users turn off Application Insights?

直接無効にすることはできません。Not directly. ユーザーが Application Insights を無効にするために操作できるスイッチはありません。We don't provide a switch that your users can operate to turn off Application Insights.

ただし、アプリケーションでそのような機能を実装することはできます。However, you can implement such a feature in your application. すべての SDK には、テレメトリの収集を無効にする API 設定が含まれています。All the SDKs include an API setting that turns off telemetry collection.

Application Insights によって送信されるデータData sent by Application Insights

SDK はプラットフォームごとに異なり、インストールできるコンポーネントは複数ありますThe SDKs vary between platforms, and there are several components that you can install. (「Application Insights - 概要」をご覧ください。)各コンポーネントは、それぞれ異なるデータを送信します。(Refer to Application Insights - overview.) Each component sends different data.

さまざまなシナリオで送信されるデータのクラスClasses of data sent in different scenarios

操作Your action 収集されるデータのクラス (次の表を参照)Data classes collected (see next table)
Application Insights SDK を .NET Web プロジェクトに追加するAdd Application Insights SDK to a .NET web project ServerContextServerContext
InferredInferred
Perf countersPerf counters
RequestsRequests
例外Exceptions
SessionSession
usersusers
Status Monitor を IIS にインストールするInstall Status Monitor on IIS 依存関係Dependencies
ServerContextServerContext
InferredInferred
Perf countersPerf counters
Application Insights SDK を Java Web アプリに追加するAdd Application Insights SDK to a Java web app ServerContextServerContext
InferredInferred
RequestRequest
SessionSession
usersusers
JavaScript SDK を Web ページに追加するAdd JavaScript SDK to web page ClientContextClientContext
InferredInferred
ページPage
ClientPerfClientPerf
AjaxAjax
既定のプロパティを定義するDefine default properties Properties (すべての標準イベントおよびカスタム イベント)Properties on all standard and custom events
TrackMetric を呼び出すCall TrackMetric 数値Numeric values
PropertiesProperties
Track* を呼び出すCall Track* イベント名Event name
PropertiesProperties
TrackException を呼び出すCall TrackException 例外Exceptions
Stack dumpStack dump
PropertiesProperties
SDK はデータを収集できません。SDK can't collect data. 次に例を示します。For example:
- パフォーマンス カウンターにアクセスできない- can't access perf counters
- テレメトリ初期化子で例外が発生した- exception in telemetry initializer
SDK diagnosticsSDK diagnostics

他のプラットフォームの SDK については、該当するドキュメントを参照してください。For SDKs for other platforms, see their documents.

収集されるデータのクラスThe classes of collected data

収集されるデータのクラスCollected data class 含まれるデータ (網羅的なリストではありません)Includes (not an exhaustive list)
PropertiesProperties コードによって決まる任意のデータAny data - determined by your code
DeviceContextDeviceContext Id、IP、ロケール、デバイス モデル、ネットワーク、ネットワークの種類、OEM の名前、画面解像度、ロール インスタンス、ロール名、デバイスの種類Id, IP, Locale, Device model, network, network type, OEM name, screen resolution, Role Instance, Role Name, Device Type
ClientContextClientContext OS、ロケール、言語、ネットワーク、ウィンドウの解像度OS, locale, language, network, window resolution
SessionSession session id
ServerContextServerContext コンピューター名、ロケール、OS、デバイス、ユーザー セッション、ユーザー コンテキスト、操作Machine name, locale, OS, device, user session, user context, operation
InferredInferred IP アドレス、タイムスタンプ、OS、ブラウザーからの geo ロケーションgeo location from IP address, timestamp, OS, browser
メトリックMetrics メトリックの名前と値Metric name and value
eventsEvents イベントの名前と値Event name and value
PageViewsPageViews URL とページ名または画面名URL and page name or screen name
Client perfClient perf URL/ページ名、ブラウザーの読み込み時間URL/page name, browser load time
AjaxAjax Web ページからサーバーへの HTTP 呼び出しHTTP calls from web page to server
RequestsRequests URL、期間、応答コードURL, duration, response code
依存関係Dependencies 種類 (SQL、HTTP、...)、接続文字列または URI、同期または非同期、期間、成功、SQL ステートメント (Status Monitor による)Type(SQL, HTTP, ...), connection string, or URI, sync/async, duration, success, SQL statement (with Status Monitor)
例外Exceptions 種類、メッセージ、呼び出し履歴、ソース ファイル、行の番号、thread idType, message, call stacks, source file, line number, thread id
CrashesCrashes Process idparent process idcrash thread id。アプリケーションの修正プログラム、id、ビルド。例外の種類、アドレス、理由。難読化されたシンボルとレジスタ、バイナリの開始アドレスと終了アドレス、バイナリ名とパス、CPU の種類Process id, parent process id, crash thread id; application patch, id, build; exception type, address, reason; obfuscated symbols and registers, binary start and end addresses, binary name and path, cpu type
TraceTrace メッセージ と重大度レベルMessage and severity level
Perf countersPerf counters プロセッサ時間、使用可能なメモリ、要求レート、例外レート、プロセスのプライベート バイト、IO レート、要求の期間、要求のキューの長さProcessor time, available memory, request rate, exception rate, process private bytes, IO rate, request duration, request queue length
可用性Availability Web テストの応答コード、各テスト ステップの期間、テスト名、タイムスタンプ、成功、応答時間、テストの場所Web test response code, duration of each test step, test name, timestamp, success, response time, test location
SDK diagnosticsSDK diagnostics トレース メッセージまたは例外Trace message or Exception

ApplicationInsights.config を編集して、データの一部をオフにすることができますYou can switch off some of the data by editing ApplicationInsights.config

注意

クライアント IP は地理的な場所の推論に使用されますが、既定では、IP データは格納されなくなっており、関連するフィールドにはすべてゼロが書き込まれます。Client IP is used to infer geographic location, but by default IP data is no longer stored and all zeroes are written to the associated field. 個人データの処理について詳しく理解するには、こちらの記事をお勧めします。To understand more about personal data handling we recommend this article. IP アドレスのデータを格納する必要がある場合は、IP アドレスの収集に関する記事のオプションについての説明をご覧ください。If you need to store IP address data our IP address collection article will walk you through your options.

謝辞Credits

この製品には、MaxMind によって作成された GeoLite2 データが含まれています。MaxMind は https://www.maxmind.com から入手できます。This product includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com.