Zmienna niestandardowa jest niewidoczna w raportach niestandardowych Analytics

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Krótki opis problemu

Zmienna niestandardowa utworzona za pomocą zasady StatisticsCollector jest niewidoczna w sekcji Wymiary niestandardowe w raportach niestandardowych Analytics w interfejsie Edge.

Komunikaty o błędach

Nie zaobserwowano żadnych błędów.

Możliwe przyczyny

W tabeli poniżej znajdziesz możliwe przyczyny tego problemu:

Przyczyna Dla
Zmienna niestandardowa nie jest zgodna ze standardowymi wytycznymi Użytkownicy chmury prywatnej i publicznej Edge
Brak ruchu w proxy interfejsu API, które implementuje zasadę StatisticsCollector Użytkownicy chmury prywatnej i publicznej Edge
Zmienna niestandardowa nie została przesłana na serwer Postgres Użytkownicy chmury prywatnej Edge

Kliknij link w tabeli, aby zobaczyć możliwe rozwiązania tego problemu.

Zmienna niestandardowa nie jest zgodna ze standardowymi wytycznymi

Diagnostyka

Jeśli nazwa zmiennej niestandardowej użyta w zasadzie StatisticsCollector nie jest zgodna ze standardowymi wytycznymi (patrz Rozwiązanie), nie będzie ona widoczna w raportach niestandardowych.

Poniższy fragment kodu pokazuje, że nazwa zmiennej „product id” zawiera spację, więc nie będzie widoczna w sekcji Wymiar niestandardowy w raporcie niestandardowym.

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

Rozdzielczość

Nazwy zmiennych niestandardowych używane w zasadzie StatisticsCollector w proxy interfejsu API powinny być zgodne z tymi wytycznymi:

  • Nazwy mogą zawierać [a-z][0-9] i „_”.
  • Nazwy nie mogą zawierać spacji. Na przykład w pokazanym powyżej przykładzie kodu nazwę zmiennej należy zmienić na „product_id”.
  • Wielkość liter jest ignorowana.
  • Zarezerwowane słowa kluczowe wymienione w tabeli pod tym linkiem są nie dozwolone. Na przykład „user” jest niedozwolone. Więcej informacji znajdziesz w artykule Słowa kluczowe SQL.

Jeśli problem będzie się powtarzał, przejdź do sekcji Brak ruchu w proxy interfejsu API, które implementuje zasadę StatisticsCollector.

Brak ruchu w proxy interfejsu API, które implementuje zasadę StatisticsCollector

Diagnostyka

Jeśli w proxy interfejsu API, które implementuje zasadę StatisticsCollector, nie ma ruchu, zmienna niestandardowa nie będzie widoczna w raportach niestandardowych.

Rozdzielczość

Wykonaj kilka wywołań proxy interfejsu API, które implementuje zasadę StatisticsCollector.

Odczekaj chwilę i sprawdź, czy zmienne niestandardowe pojawiają się w wymiarach niestandardowych w raporcie niestandardowym.

Jeśli problem będzie się powtarzał, przejdź do sekcji Zmienna niestandardowa nie została przesłana na serwer Postgres.

Zmienna niestandardowa nie została przesłana na serwer Postgres

Diagnostyka

Gdy w proxy interfejsu API zostanie utworzona zmienna niestandardowa i zostaną wykonane wywołania interfejsu API, zmienna zostanie najpierw zapisana w pamięci procesora komunikatów. Procesor wiadomości wysyła następnie informacje o nowej zmiennej do ZooKeeper, który z kolei wysyła je na serwer Postgres, aby dodać ją jako kolumnę w bazie danych Postgres.

Czasami powiadomienie z ZooKeeper może nie dotrzeć do serwera Postgres z powodu problemów z siecią. Z powodu tego błędu zmienna niestandardowa może nie pojawić się w raporcie niestandardowym.

Aby sprawdzić, gdzie brakuje zmiennej niestandardowej:

  1. Wygeneruj drzewo ZooKeeper za pomocą tego polecenia:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. W wynikach drzewa ZooKeeper wyszukaj zmienną niestandardową.
  3. Jeśli zmienna niestandardowa istnieje w drzewie ZooKeeper, wykonaj te polecenia, aby sprawdzić, czy została dodana do bazy danych Postgres:
    1. Na węźle Postgres zaloguj się w PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Uruchom to zapytanie SQL:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. Najprawdopodobniej zobaczysz, że w tabeli faktów brakuje kolumny zmiennej niestandardowej, co jest przyczyną jej nieobecności w wymiarach niestandardowych.

Rozdzielczość

Rozwiązanie 1. Uruchom ponownie serwer Postgres

  1. Uruchom ponownie serwer Postgres, aby wymusić odczytanie wszystkich informacji związanych z Analytics z ZooKeeper:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    Jeśli problem będzie się powtarzał, zastosuj rozwiązanie 2.

Rozwiązanie 2. Włącz właściwość forceonboard

Aby włączyć właściwość forceonboard:

  1. Jeśli nie istnieje, utwórz na serwerze Postgres plik /opt/apigee/customer/application/postgres-server.properties.
  2. Dodaj do tego pliku ten wiersz:
    conf_pg-agent_forceonboard=true
  3. Upewnij się, że właścicielem tego pliku jest Apigee, używając tego polecenia:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Uruchom ponownie serwer Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. Jeśli masz więcej niż 1 serwer Postgres, powtórz powyższe czynności na wszystkich serwerach Postgres.
  6. Wycofaj wdrożenie i wdróż ponownie proxy interfejsu API, które używa zasady StatisticsCollector.
  7. Uruchom wywołania interfejsu API.
  8. Sprawdź, czy zmienne niestandardowe pojawiają się w wymiarach niestandardowych w raporcie niestandardowym.

Jeśli problem będzie się powtarzał, skontaktuj się z zespołem pomocy Apigee Edge.