Zmienna niestandardowa jest niewidoczna w raportach niestandardowych Analytics

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Krótki opis problemu

Zmienna niestandardowa utworzona za pomocą zasad StatisticsCollector nie jest widoczna 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 Cloud
Brak ruchu w interfejsie API Proxy z implementacją zasady StatisticsCollector Użytkownicy chmury prywatnej i publicznej Cloud
Zmienna niestandardowa nie została przekazana na serwer Postgres Użytkownicy chmury Private Cloud

Kliknij link w tabeli, aby wyświetlić możliwe rozwiązania tej przyczyny.

Zmienna niestandardowa nie jest zgodna ze standardowymi wytycznymi

Diagnostyka

Jeśli nazwa zmiennej niestandardowej używana w zasadzie StatisticsCollector jest niezgodna ze standardowymi wytycznymi (patrz Rozwiązanie), nie pojawi się w raportach niestandardowych.

Fragment kodu widoczny poniżej pokazuje, że zmienna o nazwie „id produktu” zawiera spację, więc nie pojawi się ona w wymiarze niestandardowym 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 interfejsie API interfejsu API powinny być zgodne z tymi wytycznymi:

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

Jeśli problem nie ustąpi, przejdź do artykułu Brak ruchu na serwerze proxy interfejsu API implementującej zasadę StatisticsCollector.

Brak ruchu w serwerze proxy interfejsu API z implementacją zasady StatisticsCollector

Diagnostyka

Jeśli na serwerze proxy interfejsu API, który korzysta z zasady StatisticsCollector, nie ma ruchu, zmienna niestandardowa nie będzie widoczna w raportach niestandardowych.

Rozdzielczość

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

Zaczekaj trochę 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 przekazana do serwera Postgres.

Zmienna niestandardowa nie została przekazana na serwer Postgres

Diagnostyka

Po utworzeniu zmiennej niestandardowej w proxy interfejsu API i wywołaniach interfejsu API zmienna jest najpierw przechowywana w pamięci przez procesor wiadomości. Następnie wysyła informacje o nowej zmiennej do ZooKeeper, która z kolei wysyła ją na serwer Postgres w celu dodania jej jako kolumny 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 występować 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. Wyszukaj zmienną niestandardową w danych wyjściowych drzewa ZooKeeper.
  3. Jeśli zmienna niestandardowa znajduje się w drzewie ZooKeeper, wykonaj te polecenia, aby sprawdzić, czy zmienna niestandardowa została dodana do bazy danych Postgres:
    1. W 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 w tabeli faktów nie będzie kolumny ze zmienną niestandardową, dlatego nie ma jej w wymiarach niestandardowych.

Rozdzielczość

Rozwiązanie nr 1. Ponownie uruchom serwer Postgres

  1. Ponownie uruchom serwer Postgres, aby wymusić odczytanie przez Zookeeper wszystkich informacji związanych z Analytics:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

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

Rozwiązanie 2. Włącz wymuszanie rejestracji właściwości

Aby włączyć właściwość forceonboard, wykonaj te czynności:

  1. Utwórz plik /opt/apigee/customer/application/postgres-server.properties na komputerze serwera Postgres, jeśli jeszcze nie istnieje.
  2. Dodaj do tego pliku ten wiersz:
    conf_pg-agent_forceonboard=true
  3. Sprawdź, czy ten plik należy do Apigee, korzystając z tego polecenia:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Ponownie uruchom 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 podane wyżej kroki na wszystkich z nich.
  6. Wycofaj wdrożenie i wdróż serwer proxy interfejsu API, który używa zasady StatisticsCollector.
  7. uruchamiać wywołania interfejsu API,
  8. Sprawdź, czy zmienne niestandardowe pojawiają się w wymiarach niestandardowych w raporcie niestandardowym.

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