Freigeben über


Application Insights-Protokolle fehlen oder sind für Azure Functions-Apps falsch

Sie können die Funktions-App durch die Integration zwischen Azure Functions und Application Insights genau überwachen. Außerdem können Sie Application Insights ohne benutzerdefinierte Konfiguration verwenden.

Wenn die Application Insights-Protokolle fehlen oder die Daten teilweise oder ungenau sind, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

Überprüfen der Konfiguration der Funktions-App

  1. Navigieren Sie im Azure-Portal zu Ihrer Funktions-App.

  2. Wählen Sie Diagnose und Problembehandlung aus, um Azure Functions Diagnose zu öffnen.

  3. Geben Sie in der SuchleisteFunktionskonfigurationsprüfungen ein, und öffnen Sie sie.

  4. Es wird ein Diagnosebericht aller Funktions-App-Konfigurationsprüfungen angezeigt. Insbesondere für Application Insights werden die folgenden Überprüfungen durchgeführt:

    • Es ist nur eine der folgenden Verbindungseinstellungen vorhanden:

      • APPINSIGHTS_INSTRUMENTATIONKEY Application Insights-Instrumentierungsschlüssel

      • APPLICATIONINSIGHTS_CONNECTION_STRING Verbindung

        Es wird empfohlen, die APPLICATIONINSIGHTS_CONNECTION_STRING zu verwenden, um ein stabileres Verhalten zu gewährleisten. Die Verwendungsmöglichkeit APPINSIGHTS_INSTRUMENTATIONKEY wird bis 2025 eingestellt.

    • Die AzureWebJobsDashboard integrierte Protokollierung ist wie empfohlen deaktiviert.

    • Sampling ist für die Azure Functions Telemetrie aktiviert (standardmäßig aktiviert).

Empfehlung: Die Funktions-App sollte version 4 und die Laufzeitversion mindestens 4.15.2xx sein. Dies liegt daran, dass Sie ab dieser Version die Protokollflüsse von Azure Functions zum Application Insights-Dienst nachverfolgen können. Durch die Überwachung der Protokollflüsse können Sie nach fehlenden Protokollen suchen.

Protokolle fehlen oder teilweise

Application Insights sammelt Protokoll-, Leistungs- und Fehlerdaten. Die Samplingkonfiguration wird verwendet, um die Menge der Telemetriedaten zu reduzieren. Das Sampling-Feature ist standardmäßig mit den Einstellungen aktiviert, die im folgenden host.json Beispiel gezeigt werden. Ausgeschlossene Typen werden nicht als Stichproben verwendet.

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

Wenn Sie feststellen, dass Protokolle teilweise fehlen, kann dies aufgrund der Stichprobenentnahme auftreten. Verwenden Sie zum Ermitteln der tatsächlichen Samplingrate eine Analytics-Abfrage, die das erforderliche Zeitintervall verwendet, das im folgenden Codeausschnitt gezeigt wird. Wenn Sie feststellen, dass für TelemetrySavedPercentage einen Stichprobentyp kleiner als 100 ist, wird dieser Telemetrietyp abgetastet.

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

Weitere Informationen finden Sie unter Datensammlung, -aufbewahrung und -speicherung in Application Insights.

Steuern der Lautstärke und Ausführlichkeit von Protokollen

Sie können die geschriebenen Protokolle erhöhen oder unterdrücken. Dazu können Sie eine Kombination aus Protokollebene und Kategorien verwenden, wie in host.json konfiguriert.

Die Azure Functions-Protokollierung enthält eine Kategorie für jedes Protokoll. Die Kategorie gibt an, welcher Teil des Laufzeitcodes oder Ihres Funktionscodes das Protokoll generiert hat. Zum Beispiel:

  • Und Host.ResultsFunction.<YOUR_FUNCTION_NAME> sind einige der verfügbaren Kategorien.
  • Jedem Protokoll wird eine Protokollebene zugewiesen. Der Wert gibt die relative Wichtigkeit an, z Warning . B. oder Information.

Weitere Informationen finden Sie in den anderen verfügbaren Kategorien und Protokollebenen .

Sie können konfigurieren, wie Ihre Anwendung die Protokolle schreiben soll, indem Sie dem Beispielcodeausschnitt folgen:

{
  "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"
      }
    }
  }
}

Um diese Werte auf App-Einstellungsebene zu konfigurieren (um eine erneute Bereitstellung bei host.json Änderungen zu vermeiden), überschreiben Sie bestimmte host.json Werte, indem Sie einen entsprechenden Wert als Anwendungseinstellung erstellen. Weitere Informationen finden Sie unter Außerkraftsetzen von host.json Werten.

Weitere Beispiele zum Unterdrücken von Protokollen finden Sie unter functions-log-suppression.

Die in das virtuelle Netzwerk integrierte Funktions-App generiert keine Protokolle.

Wenn eine Funktions-App in ein virtuelles Netzwerk integriert ist, müssen Sie Port 443 für ausgehenden Datenverkehr in Ihrer Serverfirewall öffnen, damit das Application Insights SDK oder der Application Insights-Agent Daten für die folgenden URLs an das Portal senden kann:

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

Weitere Informationen finden Sie unter VON Azure Monitor verwendete IP-Adressen.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.