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 nie jest widoczna w sekcji Wymiary niestandardowe w raportach niestandardowych Analytics w nowym 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 Edge Private Cloud i chmury publicznej
Brak ruchu w proxy interfejsu API, które implementuje zasadę StatisticsCollector Użytkownicy Edge Private Cloud i chmury publicznej
Zmienna niestandardowa nie została przekazana na serwer Postgres Użytkownicy Edge Private Cloud

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.

Fragment kodu poniżej pokazuje, że nazwa zmiennej „product id” zawiera spację, więc nie będzie ona widoczna w sekcji Wymiar niestandardowy w raporcie niestandardowym.

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

Rozwiązanie

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ładowym kodzie nazwę zmiennej należy zmienić na „product_id”.
  • Wielkość liter nie ma znaczenia.
  • Słowa kluczowe zastrzeżone wymienione w tabeli pod tym linkiem są nie dozwolone. Na przykład słowo „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.

Rozwiązanie

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

Odczekaj chwilę i sprawdź, czy zmienna niestandardowa lub 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 na serwer Postgres.

Zmienna niestandardowa nie została przekazana 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ć je 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. Wyszukaj zmienną niestandardową w danych wyjściowych drzewa ZooKeeper.
  3. Jeśli zmienna niestandardowa istnieje w drzewie ZooKeeper, wykonaj te polecenia, aby sprawdzić, czy zmienna niestandardowa 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.

Rozwiązanie

Rozwiązanie 1. Ponowne uruchomienie serwera Postgres

  1. Ponownie uruchom 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łączenie właściwości forceonboard

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

  1. Jeśli na serwerze Postgres nie ma jeszcze pliku /opt/apigee/customer/application/postgres-server.properties, utwórz go na serwerze Postgres.
  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. 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 powyższe czynności na wszystkich serwerach Postgres.
  6. Cofnij wdrożenie proxy interfejsu API, które używa zasady StatisticsCollector , i wdróż je ponownie.
  7. Uruchom wywołania interfejsu API.
  8. Sprawdź, czy zmienna niestandardowa lub 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.