Application Insights は、グローバル インジェスト エンドポイントから接続文字列を使用するリージョン エンドポイントに変わり、 追加の機能が提供されています。
この変更の影響を大きく受けるサービス:
ファイアウォール例外またはプロキシ リダイレクト - イントラネット Web サーバーの監視が必要な場合、以前のソリューションでは、個々のサービス エンドポイントを構成に追加するように求められました。 詳細については、「イントラネット Web サーバーを監視できますか?」 を参照してください。 接続文字列は、この作業を 1 つの設定に減らすことで、より良い代替手段を提供します。 プレフィックスとサフィックスの簡単な修正を行うことで、すべてのエンドポイントを適切なサービスに自動的に割り当ててリダイレクトすることができます。
ソブリンクラウド環境またはハイブリッド クラウド環境 - ユーザーは、定義された Azure Government リージョンにデータを送信できます。 接続文字列を使用すると、イントラネット サーバーまたはハイブリッド クラウド設定のエンドポイント設定を定義できます。
この記事では、インストルメンテーション キーから接続文字列への移行について説明します。
[前提条件]
移動
Application Insights リソースの [概要] ペインにアクセスしてください。
右側に表示されている 接続文字列 を見つけます。
接続文字列をポイントし、[クリップボードにコピー] アイコンを選択します。
接続文字列を設定する方法に従って、Application Insights SDK を構成します。
重要
接続文字列とインストルメンテーション キーの両方を使用しないでください。 後者のセットはもう一方のセットよりも優先され、ポータルにテレメトリが表示されない可能性があります。 不足しているデータを確認します。
大規模な移行
環境変数を使用して、接続文字列を Application Insights SDK またはエージェントに渡します。
環境変数を使用して接続文字列を設定するには、接続文字列の値を APPLICATIONINSIGHTS_CONNECTION_STRING
という名前の環境変数に配置します。
このプロセスは、 Azure デプロイで自動化できます。 たとえば、次の Azure Resource Manager テンプレートは、Azure App Service デプロイに正しい接続文字列を自動的に含める方法を示しています。 アプリに必要なその他のアプリ設定を必ず含めます。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServiceName": {
"type": "string",
"metadata": {
"description": "Name of the App Services resource"
}
},
"appServiceLocation": {
"type": "string",
"metadata": {
"description": "Location to deploy the App Services resource"
}
},
"appInsightsName": {
"type": "string",
"metadata": {
"description": "Name of the existing Application Insights resource to use with this App Service. Expected to be in the same Resource Group."
}
}
},
"resources": [
{
"apiVersion": "2016-03-01",
"name": "[parameters('appServiceName')]",
"type": "microsoft.web/sites",
"___location": "[parameters('appServiceLocation')]",
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference(concat('microsoft.insights/components/', parameters('appInsightsName')), '2015-05-01').ConnectionString]"
}
]
},
"name": "[parameters('appServiceName')]"
}
}
]
}
サポートされている SDK バージョン
- .NET および .NET Core v2.12.0 以降
- Java v2.5.1 および Java 3.0 以降
- JavaScript v2.3.0 以降
- NodeJS v1.5.0 以降
- Python v1.0.0 以降
トラブルシューティング
このセクションでは、トラブルシューティングの解決策について説明します。
アラート: "データ インジェストに接続文字列を使用するための移行"
このアラートを解決するには、この記事の 移行手順 に従います。
データが見つからない
- サポートされている SDK バージョンを使用していることを確認します。 別の Azure 製品オファリングで Application Insights 統合を使用する場合は、接続文字列を適切に構成する方法に関するドキュメントを確認してください。
- インストルメンテーション キーと接続文字列の両方を同時に設定していないことを確認します。 インストルメンテーション キーの設定は、構成から削除する必要があります。
- 接続文字列が Azure portal で指定されているとおりであることを確認します。
環境変数が機能しない
アプリケーション コードでインストルメンテーション キーをハードコーディングすると、そのプログラミングが環境変数の前に優先される可能性があります。
よく寄せられる質問
このセクションでは、一般的な質問への回答を示します。
接続文字列は他にどこにありますか?
接続文字列は、Application Insights リソースの Resource Manager リソース プロパティのフィールド名 ConnectionString
にも含まれます。
これは自動インスツルメンテーションにどのように影響しますか?
自動インスツルメンテーションのシナリオは影響を受けません。
自動計装で Microsoft Entra 認証を使用できますか?
オートインスツルメンテーション シナリオでは、Microsoft Entra 認証を有効にすることはできません。 今後、この制限に対処する予定です。
グローバルインジェストと地域インジェストの違いは何ですか?
グローバル インジェストでは、このデータが格納される場所に関係なく、すべてのテレメトリ データが 1 つのエンドポイントに送信されます。 リージョンインジェストを使用すると、データ インジェスト用にリージョンごとに特定のエンドポイントを定義できます。 この機能により、処理中およびストレージ中にデータが特定のリージョン内に留まるようにします。
接続文字列は課金にどのように影響しますか?
課金は影響を受けません。
Microsoft Q&A
回答フォーラムに質問を投稿します。