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. Und Sie können 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 Problemlösung, um die Azure Functions-Diagnose zu öffnen.

  3. Geben Sie in der Suchleiste Funktionskonfigurationsprü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 Prüfungen durchgeführt:

    • Es gibt nur eine der folgenden Verbindungseinstellungen:

      • APPINSIGHTS_INSTRUMENTATIONKEY Application Insights Instrumentation Key

      • APPLICATIONINSIGHTS_CONNECTION_STRING Verbindung

        Es wird empfohlen, die APPLICATIONINSIGHTS_CONNECTION_STRING für ein stabileres Verhalten zu verwenden. Die Möglichkeit zur Verwendung APPINSIGHTS_INSTRUMENTATIONKEY wird bis 2025 nicht mehr unterstützt.

    • Die integrierte AzureWebJobsDashboard-Protokollierung ist wie empfohlen deaktiviert.

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

Empfehlung: Die Funktions-App sollte auf 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

Mit Application Insights werden Protokoll-, Leistungs- und Fehlerdaten erfasst. Die Samplingkonfiguration wird verwendet, um das Volumen der Telemetrie zu reduzieren. Die Sampling-Funktion ist standardmäßig mit den Einstellungen im folgenden host.json Beispiel aktiviert. Ausgeschlossene Typen werden nicht analysiert.

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

Wenn Sie feststellen, dass teilweise fehlende Protokolle vorhanden sind, kann dies aufgrund des Samplings auftreten. Um die tatsächliche Samplingrate zu ermitteln, verwenden Sie eine Analyseabfrage, die das erforderliche Zeitintervall verwendet, das im folgenden Codeausschnitt angezeigt wird. Wenn Sie feststellen, dass der TelemetrySavedPercentage Samplingtyp kleiner als 100 ist, wird dieser Telemetrietyp abgesampt.

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

Mehr Informationen dazu 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 vergrößern oder unterdrücken. Dazu können Sie eine Kombination aus Protokollebene und Kategorien wie in host.json konfiguriert verwenden.

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

  • Dies Host.Results sind Function.<YOUR_FUNCTION_NAME> 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 für host.json Änderungen zu vermeiden), überschreiben Sie bestimmte host.json Werte, indem Sie einen gleichwertigen Wert als Anwendungseinstellung erstellen. Weitere Informationen finden Sie unter Außerkraftsetzung der Werte in der Datei „host.json“.

Weitere Beispiele zum Unterdrücken von Protokollen finden Sie unter Funktionsprotokollunterdrückung.

Die integrierte Funktions-App für virtuelle Netzwerke 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, um dem Application Insights SDK oder Application Insights Agent das Senden von Daten an das Portal für die folgenden URLs zu ermöglichen:

  • 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.