APM-Logabsenderfunktion

Erfahren Sie, wie Sie mit der vordefinierten Funktion "APM-Logabsender" in OCI Functions Servicelogs in eine APM-Domain verschieben.

Allgemeine Verwendungsszenarios

Verwenden Sie die PBF des APM-Logabsenders, um Servicelogs in eine APM-Domain zu verschieben, indem Sie die Funktion als Ziel eines Service-Connectors verwenden. Diese Funktion dient hauptsächlich zur Überwachung von Oracle Integration Cloud-(OIC-)Integrationen mit Application Performance Monitoring (APM), indem ein OIC-Aktivitätsstreamlog mit der Funktion verbunden wird.

Zu den Services für die APM-Logabsenderfunktion gehören:

Geltungsbereich

Zu den Überlegungen zum Umfang für diese Funktion gehören:

Voraussetzungen und Empfehlungen

Im Folgenden finden Sie Best Practices für die Verwendung dieser vordefinierten Funktion:

  • Legen Sie den vordefinierten Funktionstimeout auf 300 Sekunden fest.
  • Wenn das für die Anwendung angegebene Subnetz ein privates Subnetz ist, muss das VCN ein Servicegateway enthalten. Wenn das für die Anwendung angegebene Subnetz ein öffentliches Subnetz ist, muss das VCN ein Internetgateway enthalten. In beiden Fällen müssen die erforderlichen Weiterleitungsregeln vorhanden sein. Siehe die Anweisungen unter Aufrufen einer Funktion gibt eine FunctionInvokeImageNotAvailable-Meldung und ein 502-Fehler-Fehlerbehebungsthema zurück.
  • Funktion, APM-Domain und Logressource müssen sich alle in derselben Region befinden.

APM-Logabsenderfunktion konfigurieren

So erstellen Sie eine APM-Logabsenderfunktion:

  1. Wählen Sie auf der Seite Vordefinierte Funktionen die Option APM-Logabsender und dann Funktion erstellen aus.
  2. Konfigurieren Sie Name, Compartment und Anwendung wie folgt:
    • Name: Geben Sie einen Namen Ihrer Wahl für die neue Funktion ein. Der Name muss mit einem Buchstaben oder Unterstrich beginnen und darf nur Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten. Die zulässige Länge beträgt 1–255 Zeichen. Geben Sie keine vertraulichen Informationen ein.

      Um die Funktion in einem anderen Compartment zu erstellen, wählen Sie Compartment ändern aus.

    • Anwendung: Wählen Sie die Anwendung aus, in der die Funktion erstellt werden soll.

      Wenn noch keine geeignete Anwendung im aktuellen Compartment vorhanden ist, wählen Sie Neue Anwendung erstellen aus, und geben Sie die folgenden Details an:

      • Name: Ein Name für die neue Anwendung. Geben Sie keine vertraulichen Informationen ein.
      • VCN: Das VCN (virtuelles Cloud-Netzwerk), in dem Funktionen in der Anwendung ausgeführt werden sollen. Wählen Sie optional VCN-Compartment: aus, um ein VCN in einem anderen Compartment auszuwählen.
      • Subnetz: Das Subnetz (oder die Subnetze, bis zu drei) in dem Funktionen ausgeführt werden sollen. Wählen Sie optional Subnetz-Compartment: aus, um ein Subnetz aus einem anderen Compartment auszuwählen.
      • Ausprägung: Die Prozessorarchitektur der Compute-Instanzen, auf denen Funktionen in der Anwendung bereitgestellt und ausgeführt werden sollen. Alle Funktionen in der Anwendung werden bereitgestellt und auf Compute-Instanzen mit derselben Architektur ausgeführt. Das Abbild der Funktion muss die erforderlichen Abhängigkeiten für die ausgewählte Architektur enthalten.
      • Tags: Wenn Sie über Berechtigungen zum Erstellen von Ressourcen verfügen, können Sie auch Freiformtags auf diese Ressource anwenden. Um ein definiertes Tag anzuwenden, benötigen Sie Die Berechtigungen zum Verwenden des Tag-Namespace. Weitere Informationen zum Tagging finden Sie unter Ressourcentags. Wenn Sie nicht sicher sind, ob Tags angewendet werden sollen, überspringen Sie diese Option, oder fragen Sie einen Administrator. Sie können Tags später anwenden.
  3. Konfigurieren Sie die IAM-Policy für vordefinierte Funktionen.

    Standardmäßig erstellt OCI Functions eine dynamische Gruppe und eine IAM-Policy mit den Policy-Anweisungen, die zum Ausführen der vordefinierten Funktion erforderlich sind. Sie haben folgende Möglichkeiten, um fortzufahren:

    • Wenn OCI Functions die dynamische Gruppe und Policy automatisch erstellen soll, nehmen Sie keine Änderungen vor, um das Standardverhalten zu akzeptieren.
    • Wenn OCI Functions die dynamische Gruppe und Policy nicht automatisch erstellen soll, wählen Sie Keine dynamische Gruppe und IAM-Policy erstellen aus.
    Wichtig

    Wenn Sie die Option Keine dynamische Gruppe und IAM-Policy erstellen auswählen, müssen Sie die dynamische Gruppe und die IAM-Policy selbst definieren.
  4. Konfigurieren Sie die Werte für Funktionsspeicher und Timeout wie folgt:
    • Arbeitsspeicher (in MB): Der maximale Arbeitsspeicher, den die Funktion während der Ausführung in Megabyte nutzen kann. Dies ist der Speicher, der dem Funktionsbild zur Verfügung steht.
    • Timeout (in Sekunden): Die maximale Zeit, für die die Funktion ausgeführt werden kann, in Sekunden. Wenn die Funktion nicht innerhalb der angegebenen Zeit abgeschlossen wird, bricht das System die Funktion ab. (Standardwert: 300)
  5. (Optional) Konfigurieren Sie Provisioned Concurrency, um anfängliche Verzögerungen beim Aufrufen der Funktion zu minimieren, indem Sie eine Mindestanzahl gleichzeitiger Funktionsaufrufe angeben, für die Sie die Ausführungsinfrastruktur ständig verfügbar haben möchten. (Standard: Nicht ausgewählt)

    Wenn diese Option ausgewählt ist, geben Sie die Anzahl der bereitgestellten Nebenläufigkeitseinheiten an, die dieser Funktion zugewiesen sind. Standardwert: 20.

    Weitere Informationen zum bereitgestellten gleichzeitigen Zugriff finden Sie unter Anfängliche Latenz mit bereitgestelltem gleichzeitigem Zugriff reduzieren.

  6. Legen Sie die Konfigurationsparameter der Funktion fest, wie unter Konfigurationsparameter beschrieben.
  7. Geben Sie optional beliebige Tags in den Abschnitt Tags ein. Wenn Sie über Berechtigungen zum Erstellen von Ressourcen verfügt, sind Sie auch berechtigt: Freiformtags auf diese Ressource anwenden. Um ein definiertes Tag anzuwenden, benötigen Sie Die Berechtigungen zum Verwenden des Tag-Namespace. Weitere Informationen zum Tagging finden Sie unter Ressourcentags. Wenn Sie nicht sicher sind, ob Tags angewendet werden sollen, überspringen Sie diese Option, oder fragen Sie einen Administrator. Sie können Tags später anwenden.
  8. Klicken Sie auf Erstellen.

Im Dialogfeld "Bereitstellen" werden die Aufgaben zum Bereitstellen der Funktion angezeigt (siehe Vordefiniertes Funktions-Deployment beenden).

Konfigurationsoptionen

Konfigurationsparameter

Name Beschreibung Erforderlich
APM_DOMAIN_ID Die ID der Domain, die das Servicelog überwachen soll. Ja
PBF_LOG_LEVEL Die Logging-Ebene enthält die Optionen DEBUG, INFO, WARN und ERROR. Der Standardwert ist INFO. Keine

Berechtigungen

Für die Ausführung einer Funktion sind bestimmte IAM-Policys erforderlich. Wenn Sie beim Erstellen der Funktion die Option Keine dynamische Gruppe und IAM-Policy erstellen ausgewählt haben, müssen Sie die dynamische Gruppe und die IAM-Policy selbst definieren.

So legen Sie die richtigen Policys fest:

  • Erstellen Sie eine dynamische Gruppe mit der Regel:
    ALL {resource.id = '<function_ocid>', resource.compartment.id = '<compartment_ocid>'
  • Konfigurieren Sie eine IAM-Policy mit der dynamischen Gruppe:
    Allow dynamic-group <dynamic-group-name> to read apm-domains in compartment <compartment-name>
    Allow dynamic-group <dynamic-group-name> to {APM_DOMAIN_DATA_UPLOAD} in compartment <compartment-name>
Hinweis

Ersetzen Sie <function-ocid> durch die OCID der Funktion, die Sie in den vorherigen Schritten erstellt haben.
Hinweis

Ersetzen Sie <dynamic-group-name> durch den Namen der dynamischen Gruppe, die Sie mit der OCID der Funktion erstellt haben.
Hinweis

Ersetzen Sie <compartment_ocid> durch die OCID des Compartments, das die Funktion enthält.
Hinweis

Ersetzen Sie <compartment_name> durch den Namen des Compartments, das die APM-Domain enthält.

Diese Funktion wird aufgerufen

Connector Hub verwendet die mit dieser PBF erstellte Funktion, um Servicelogs in eine APM-Domain zu verschieben.
  1. Erstellen Sie eine Funktion mit dieser PBF.
  2. Erstellen Sie einen Connector im Connector Hub, um die Aktivitätsstreamlogs an die Funktion weiterzuleiten:
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Analysen und KI aus. Wählen Sie unter Messaging die Option Connector-Hub aus.
    2. Wählen Sie die Schaltfläche Connector erstellen aus.
    3. Geben Sie einen Namen und optional eine Beschreibung ein.
    4. Wählen Sie ein Compartment aus.
    5. Setzen Sie unter Connector konfigurieren die Quelle auf Logging und das Ziel auf Funktionen.
    6. Zeigen Sie unter Quelle konfigurieren die Loggruppe und die Logs auf ein Servicelog.
    7. Legen Sie unter Ziel konfigurieren für die Funktionsanwendung und die Funktion die Funktion fest, die Sie im vorherigen Schritt erstellt haben.

      Hinweis: Konfigurieren Sie keine Aufgabe.

    8. Klicken Sie auf die Schaltfläche Erstellen.

Fehlerbehebung

Allgemeine Statuscodes für OCI Functions

In der folgenden Tabelle werden allgemeine OCI Functions-Fehler zusammengefasst, die bei der Arbeit mit vordefinierten Funktionen auftreten können:

Fehlercode Fehlermeldung Aktion
200 Erfolgreich -
404 NotAuthorizedOrNotFound Stellen Sie sicher, dass die erforderlichen Policys konfiguriert sind (siehe Running Fn Project CLI-Befehle gibt einen 404-Fehler zurück).
444 Timeout

Die Verbindung zwischen dem Client und OCI Functions wurde während der Funktionsausführung unterbrochen (siehe Das Aufrufen einer Funktion veranlasst den Client, einen Timeout zu melden, und ein 444-Fehler wird in den Logs der Funktion angezeigt). Eine Wiederholung könnte das Problem lösen.

Beachten Sie, dass die meisten Clients einen inneren Timeout von 60 Sekunden aufweisen. Selbst wenn das vordefinierte Funktionstimeout auf 300 Sekunden gesetzt ist, ist möglicherweise Folgendes erforderlich:

  • Bei Verwendung der OCI-CLI: Verwenden Sie --read-timeout 300
  • Bei Verwendung des OCI-SDK: Legen Sie beim Erstellen des Clients den Lesetimeout auf 300 fest
  • Bei Verwendung von DBMS_CLOUD.SEND_REQUEST: Verwenden Sie UTL_HTTP.set_transfer_timeout(300);

Weitere Informationen finden Sie unter Funktionen aufrufen.

502 504 (verschiedene) Die meisten Probleme geben einen 502-Statuscode zurück (siehe Aufrufen einer Funktion gibt die Meldung "Funktion nicht erfolgreich" und einen 502-Fehler zurück). Ein 502-Fehler mit der Meldung "Fehler empfangende Funktionsantwort" kann durch Erhöhung der Speicherzuweisung behoben werden. Ein 502 kann gelegentlich auftreten, wenn sich die Funktion in einem vorübergehenden Zustand befindet. Eine Wiederholung könnte das Problem lösen.

Um die Ursache weiter zu ermitteln, aktivieren Sie Loggingfeatures für die vordefinierte Funktion (siehe Funktionslogs speichern und anzeigen). Ausführliche Informationen zur Fehlerbehebung bei einer Funktion finden Sie unter Fehlerbehebung bei OCI Functions.

APM-Logabsender - Vordefinierte Funktionsfehlermeldungen

In der folgenden Tabelle sind die Fehler zusammengefasst, die bei der Arbeit mit dieser vordefinierten Funktion auftreten können:

Fehlercode Fehlermeldung Aktion
nicht zutreffend Datenuploadendpunkt kann nicht abgerufen werden

Prüfen Sie, ob die folgende erforderliche Policy-Anweisung erstellt wurde:

Allow dynamic-group <dynamic-group-name> to read apm-domains in compartment <compartment-name>
nicht zutreffend Veröffentlichung in APM-Collector nicht erfolgreich

Prüfen Sie, ob die folgende erforderliche Policy-Anweisung erstellt wurde:

Allow dynamic-group <dynamic-group-name> to {APM_DOMAIN_DATA_UPLOAD} in compartment <compartment-name>

Stellen Sie sicher, dass im VCN der Anwendung das entsprechende Gateway konfiguriert ist. Siehe Anforderungen und Empfehlungen.

Um die Ursache weiter zu ermitteln, aktivieren Sie Loggingfeatures für die vordefinierte Funktion (siehe Funktionslogs speichern und anzeigen).

Tipps zur Loganalyse

Alle vordefinierten Funktionen bieten eine Option zur Angabe der Logging-Ebene als Konfigurationsparameter. Sie können die Logging-Ebene auf DEBUG setzen, um weitere Informationen zu erhalten.

Da eine Anwendung über mehrere Funktionen verfügt, werden die vordefinierten Funktionslogeinträge durch das Präfix "PBF | <PBF NAME>" identifiziert.

Beispiel: Ein Logeintrag für die vordefinierte APM-Logabsenderfunktion sieht in etwa wie folgt aus:

"PBF | APM Log Sender | ERROR | 2024-08-13T12:44:49.579050219Z | Unable to retrieve data upload endpoint"