Benutzerdefinierte Variable ist in benutzerdefinierten Analytics-Berichten nicht sichtbar

Sie lesen gerade die Apigee Edge -Dokumentation.
Rufen Sie die Apigee X-Dokumentation auf.
info

Symptom

Die mit der StatisticsCollector-Richtlinie erstellte benutzerdefinierte Variable ist in der Edge-UI unter „Benutzerdefinierte Dimensionen“ in den benutzerdefinierten Analyseberichten nicht sichtbar.

Fehlermeldungen

Es wurden keine Fehler beobachtet.

Mögliche Ursachen

In der folgenden Tabelle sind mögliche Ursachen für dieses Problem aufgeführt:

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

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

Benutzerdefinierte Variable entspricht nicht den Standardrichtlinien

Diagnose

Wenn der in der StatisticsCollector-Richtlinie verwendete Name der benutzerdefinierten Variablen nicht den Standardrichtlinien entspricht (siehe Auflösung), wird er nicht in den benutzerdefinierten Berichten angezeigt.

Im folgenden Code-Snippet enthält der Variablenname „product id“ ein Leerzeichen. Daher wird er in benutzerdefinierten Berichten nicht unter „Benutzerdefinierte Dimension“ angezeigt.

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

Auflösung

Namen von benutzerdefinierten Variablen, die in der StatisticsCollector-Richtlinie im API-Proxy verwendet werden, müssen 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. Beispielsweise ist „user“ 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, der die StatisticsCollector-Richtlinie implementiert fort.

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

Diagnose

Wenn kein Traffic auf dem API-Proxy vorhanden ist, 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 im benutzerdefinierten Bericht angezeigt werden.

Wenn das Problem weiterhin besteht, fahren Sie mit Benutzerdefinierte Variable wurde nicht an den Postgres-Server gesendet fort.

Benutzerdefinierte Variable wurde nicht an den Postgres-Server gesendet

Diagnose

Wenn eine benutzerdefinierte Variable im API-Proxy erstellt und API-Aufrufe ausgeführt werden, wird die Variable zuerst im Arbeitsspeicher des Message Processors gespeichert. Der Message Processor sendet dann die Informationen zur neuen Variablen an ZooKeeper, das 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 ermitteln Sie, wo die benutzerdefinierte Variable fehlt :

  1. Generieren Sie die ZooKeeper-Struktur mit dem folgenden Befehl:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. Suchen Sie in der ZooKeeper-Struktur nach der benutzerdefinierten Variablen.
  3. Wenn die benutzerdefinierte Variable in der ZooKeeper-Struktur vorhanden ist, führen Sie die folgenden Befehle aus, um zu prüfen, ob sie 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 sehen Sie, dass die Spalte der benutzerdefinierten Variablen in der Faktentabelle fehlt. Das 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, um ihn zu zwingen, alle für Analytics relevanten Informationen von ZooKeeper zu lesen:
    /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: Eigenschaft „forceonboard“ aktivieren

Aktivieren Sie die Eigenschaft forceonboard mit den folgenden Schritten:

  1. Erstellen Sie auf dem Postgres-Server die Datei /opt/apigee/customer/application/postgres-server.properties, 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 mehrere Postgres-Server haben, wiederholen Sie die obigen Schritte auf allen den Postgres-Servern.
  6. Heben Sie die Bereitstellung des API-Proxys auf, der die StatisticsCollector Richtlinie verwendet, und stellen Sie ihn noch einmal bereit.
  7. Führen Sie die API-Aufrufe aus.
  8. Prüfen Sie, ob die benutzerdefinierten Variablen in den benutzerdefinierten Dimensionen im benutzerdefinierten Bericht angezeigt werden.

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