Benutzerdefinierte Variable ist in benutzerdefinierten Analytics-Berichten nicht sichtbar

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Symptom

Die mit der StatisticsCollector-Richtlinie erstellte benutzerdefinierte Variable ist in den benutzerdefinierten Analytics-Berichten in der Edge-Benutzeroberfläche nicht unter „Benutzerdefinierte Dimensionen“ sichtbar.

Fehlermeldungen

Es werden keine Fehler beobachtet.

Mögliche Ursachen

In der folgenden Tabelle sind die möglichen Ursachen dieses Problems aufgeführt:

Ursache Für
Benutzerdefinierte Variable entspricht nicht den Standardrichtlinien Nutzer von Edge Private und Public Cloud
Kein Traffic auf den API-Proxy, der die StatisticsCollector-Richtlinie implementiert Nutzer von Edge Private und Public Cloud
Benutzerdefinierte Variable wurde nicht an den Postgres-Server gesendet Edge Private Cloud-Nutzer

Klicken Sie auf einen Link in der Tabelle, um mögliche Lösungen für diese Ursache zu sehen.

Benutzerdefinierte Variable entspricht nicht den Standardrichtlinien

Diagnose

Wenn der in der StatisticsCollector-Richtlinie verwendete benutzerdefinierte Variablenname nicht den Standardrichtlinien entspricht (siehe Lösung), wird er nicht in den benutzerdefinierten Berichten angezeigt.

Das folgende Code-Snippet zeigt, dass der Variablenname „product id“ ein Leerzeichen hat. Daher wird er im benutzerdefinierten Bericht nicht unter der benutzerdefinierten Dimension aufgeführt.

  <StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
      <Statistic name="productID" ref="product id" type="string">999999</Statistic>
    </Statistics>
  </StatisticsCollector>

Auflösung

Benutzerdefinierte Variablennamen, die in der StatisticsCollector-Richtlinie innerhalb des API-Proxys verwendet werden, sollten den folgenden Richtlinien entsprechen:

  • Namen können [a–z][0–9] und „_“ enthalten.
  • Namen dürfen keine Leerzeichen enthalten. Im oben gezeigten Codebeispiel sollte der Variablenname in „product_id“ geändert werden.
  • Groß-/Kleinschreibung wird ignoriert.
  • Reservierte Keywords, die in der Tabelle unter dem folgenden Link aufgeführt sind, sind nicht zulässig. „user“ ist beispielsweise nicht zulässig. Weitere Informationen finden Sie unter SQL-Schlüsselwörter.

Wenn das Problem weiterhin besteht, fahren Sie mit Kein Traffic auf dem API-Proxy bei der Implementierung der StatisticsCollector-Richtlinie fort.

Kein Traffic auf dem API-Proxy, der die StatisticsCollector-Richtlinie implementiert

Diagnose

Wenn es keinen Traffic auf dem API-Proxy gibt, der die StatisticsCollector-Richtlinie implementiert, wird die benutzerdefinierte Variable nicht in den benutzerdefinierten Berichten angezeigt.

Auflösung

Führen Sie einige Aufrufe an den API-Proxy aus, der die StatisticsCollector-Richtlinie implementiert.

Warten Sie einige Zeit und prüfen Sie, ob die benutzerdefinierten Variablen in den benutzerdefinierten Dimensionen des benutzerdefinierten Berichts angezeigt werden.

Wenn das Problem weiterhin besteht, fahren Sie mit Benutzerdefinierte Variable nicht an Postgres-Server übertragen fort.

Benutzerdefinierte Variable wurde nicht an den Postgres-Server gesendet

Diagnose

Wenn eine benutzerdefinierte Variable im API-Proxy erstellt wird und API-Aufrufe erfolgen, wird die Variable zuerst im Arbeitsspeicher auf dem Message Processor gespeichert. Der Message Processor sendet dann die Informationen über die neue Variable an ZooKeeper, der sie wiederum an den Postgres-Server sendet, um sie als Spalte in der Postgres-Datenbank hinzuzufügen.

Manchmal erreicht die Benachrichtigung von ZooKeeper den Postgres-Server aufgrund von Netzwerkproblemen nicht. Aufgrund dieses Fehlers wird die benutzerdefinierte Variable möglicherweise nicht im benutzerdefinierten Bericht angezeigt.

So finden Sie heraus, wo die benutzerdefinierte Variable fehlt:

  1. Generieren Sie den ZooKeeper-Baum mit dem folgenden Befehl:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. Suchen Sie in der ZooKeeper-Baumausgabe nach der benutzerdefinierten Variablen.
  3. Wenn die benutzerdefinierte Variable im ZooKeeper-Baum vorhanden ist, führen Sie die folgenden Befehle aus, um zu prüfen, ob die benutzerdefinierte Variable der Postgres-Datenbank hinzugefügt wurde:
    1. Melden Sie sich auf dem Postgres-Knoten bei PostgreSQL an:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Führen Sie die folgende SQL-Abfrage aus:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. Sehr wahrscheinlich wird die Spalte für benutzerdefinierte Variablen in der Faktentabelle fehlen. Dies ist der Grund dafür, dass sie nicht in den benutzerdefinierten Dimensionen angezeigt wird.

Auflösung

Lösung 1: Postgres-Server neu starten

  1. Starten Sie den Postgres-Server neu, damit er alle für Analytics relevanten Informationen von Zookeeper liest:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    Wenn das Problem weiterhin besteht, wenden Sie Lösung 2 an.

Lösung 2: Attribut „forceonboard“ aktivieren

So aktivieren Sie das Attribut forceonboard:

  1. Erstellen Sie die Datei /opt/apigee/customer/application/postgres-server.properties auf dem Postgres-Servercomputer, falls sie noch nicht vorhanden ist.
  2. Fügen Sie dieser Datei die folgende Zeile hinzu:
    conf_pg-agent_forceonboard=true
  3. Prüfen Sie mit dem folgenden Befehl, ob diese Datei Apigee gehört:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Starten Sie den Postgres-Server neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. Wenn Sie mehr als einen Postgres-Server haben, wiederholen Sie die Schritte oben auf allen Postgres-Servern.
  6. Heben Sie die Bereitstellung des API-Proxys, der die StatisticsCollector-Richtlinie verwendet, auf und stellen Sie ihn bereit.
  7. Führen Sie die API-Aufrufe aus.
  8. Prüfen Sie, ob die benutzerdefinierten Variablen in den benutzerdefinierten Dimensionen im benutzerdefinierten Bericht enthalten sind.

Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee Edge-Support.