次の方法で共有


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

Azure FunctionsApplication Insights の統合により、関数アプリを厳密に監視できます。 また、カスタム構成なしで Application Insights を使用できます。

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

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

  1. Azure portal で Function App に移動します。

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

  3. Search バーに「Function Configuration Checks」と入力して開きます。

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

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

      • APPINSIGHTS_INSTRUMENTATIONKEY Application Insights インストルメンテーション キー

      • 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>は、使用可能なカテゴリの一部です。
  • "ログ レベル" がすべてのログに割り当てられます。 この値は、 WarningInformationなどの相対的な重要度を示します。

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

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

{
  "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-suppressionを参照してください。

仮想ネットワーク統合関数アプリでログが生成されない

関数アプリが仮想ネットワークと統合されている場合は、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 フィードバック コミュニティに製品フィードバックを送信することもできます。