次の方法で共有


Azure Functions アプリの Application Insights ログが見つからないか正しくない

Azure FunctionsApplication Insights の統合を通じて、関数アプリを注意深く監視できます。 また、カスタム構成なしで Application Insights を使用できます。

Application Insights ログが見つからない場合、またはデータが部分的または不正確と思われる場合は、次の手順を使用して問題を解決します。

関数アプリの構成を確認する

  1. Azure portalで関数アプリに移動します。

  2. [問題の診断と解決] を選択してAzure Functions 診断を開きます。

  3. 検索バーに「関数構成チェック」と入力して開きます。

  4. すべての関数アプリ構成チェックの診断レポートが表示されます。 特に Application Insights では、次のチェックが実行されます。

    • 次のいずれかの接続設定のみが存在します。

      • APPINSIGHTS_INSTRUMENTATIONKEY Application Insights Instrumentation キー

      • APPLICATIONINSIGHTS_CONNECTION_STRING 接続

        より安定した動作を行うには 、APPLICATIONINSIGHTS_CONNECTION_STRING を使用することをお勧めします。 使用 APPINSIGHTS_INSTRUMENTATIONKEY できる機能は、2025 年までに非推奨となる予定です。

    • AzureWebJobsDashboard推奨されるように、組み込みのログ記録は無効になっています。

    • サンプリングは、Azure Functionsテレメトリに対して有効になっています (既定で有効)。

推奨事項: 関数アプリはバージョン 4 で、ランタイム バージョンは少なくとも 4.15.2xx である必要があります。 これは、このバージョン以降では、Azure Functionsから Application Insights サービスへのログ フローを追跡できるためです。 ログ フローを監視することで、不足しているログをチェックできます。

ログが見つからないか、一部

Application Insights は、ログ、パフォーマンス、エラー データを収集します。 サンプリング構成 は、テレメトリの量を減らすために使用されます。 サンプリング機能は、次の host.json 例に示す設定で既定で有効になっています。 除外された型はサンプリングされません。

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond" : 20,
        "excludedTypes": "Request;Exception"
      }
    }
  }
}

部分的に欠落しているログがある場合は、サンプリングが原因で発生する可能性があります。 実際のサンプリング レートを確認するには、次のコード スニペットに示されている必要な時間間隔を使用する Analytics クエリを使用します。 サンプリングの種類の が TelemetrySavedPercentage 100 未満である場合は、その種類のテレメトリがサンプリングされます。

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > todatetime("mm/dd/yyyy hh:mm:ss") and timestamp < todatetime("mm/dd/yyyy hh:mm:ss")
| summarize TelemetrySavedPercentage = 100/avg(itemCount), TelemetryDroppedPercentage = 100-100/avg(itemCount) by bin(timestamp, 1d), itemType
| sort by timestamp asc

詳細については、「 Application Insights でのデータ収集、保持、ストレージ」を参照してください。

ログのボリュームと詳細を制御する

書き込まれるログを増やしたり抑制したりできます。 これを行うには、 host.jsonで構成されているログ レベルとカテゴリの組み合わせを使用できます。

Azure Functions ロガーには、すべてのログのカテゴリが含まれています。 カテゴリは、ランタイム コードまたは関数コードのどの部分がログを生成したかを示します。 例:

  • Host.ResultsFunction.<YOUR_FUNCTION_NAME> は、使用可能なカテゴリの一部です。
  • ログ レベルは、すべてのログに割り当てられます。 値は、 や InformationなどのWarning相対的な重要度を示します。

詳細については、使用可能なその他のカテゴリとログ レベルに関するページを参照してください。

サンプル コード スニペットに従って、アプリケーションでログを書き込む方法を構成できます。

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "default": "Information", // catch all default, with modifications below for individual categories.
      "Function": "Warning", // Warning level from all Functions (except the ones configured below).
      "Host.Aggregator": "Trace", // Log all traces in the 'customMetrics' table of (and shown on Metrics/Alerts blade in AI) - use either this or Host.Results
      "Host.Results": "Error", // Error and Critical requests are only logged in the 'requests' table of the AI (and shown on Monitor Functions blade in Functions App) - use either this or Host.Aggregator
      "Function.Function1": "Information", //Information level logs from Function 1, logged in 'traces', 'dependencies' and 'customMetrics' tables of AI
      "Function.Function2.User": "Information" //user code logs from Function2, logged in 'traces' table of AI
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond": 1,
        "excludedTypes": "Exception"
      }
    }
  }
}

これらの値をアプリ設定レベルで構成するには ( host.json 変更での再デプロイを回避するために)、同等の値をアプリケーション設定として作成することで、特定 のhost.json 値をオーバーライドします。 詳細については、「 host.json値をオーバーライドする」を参照してください。

ログを抑制する方法の詳細な例については、「 functions-log-suppress」を参照してください。

仮想ネットワーク統合関数アプリはログを生成しません

関数アプリが仮想ネットワークと統合されている場合は、Application Insights SDK または Application Insights エージェントが次の URL のデータをポータルに送信できるように、サーバー ファイアウォールで送信トラフィックのポート 443 を開く必要があります。

  • dc.applicationinsights.azure.com
  • dc.applicationinsights.microsoft.com
  • dc.services.visualstudio.com
  • *.in.applicationinsights.azure.com

詳細については、「 Azure Monitor で使用される IP アドレス」を参照してください。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。