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:
- Wygeneruj drzewo ZooKeeper za pomocą tego polecenia:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
- Wyszukaj zmienną niestandardową w danych wyjściowych drzewa ZooKeeper.
- Jeśli zmienna niestandardowa istnieje w drzewie ZooKeeper, wykonaj te polecenia, aby sprawdzić, czy zmienna niestandardowa została dodana do bazy danych Postgres:
- Na węźle Postgres zaloguj się w PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- Uruchom to zapytanie SQL:
select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'orgname.envname.fact';
- Na węźle Postgres zaloguj się w PostgreSQL:
- 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
- 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:
- Jeśli na serwerze Postgres nie ma jeszcze pliku
/opt/apigee/customer/application/postgres-server.properties, utwórz go na serwerze Postgres. - Dodaj do tego pliku ten wiersz:
conf_pg-agent_forceonboard=true
- 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
- Ponownie uruchom serwer Postgres:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- Jeśli masz więcej niż 1 serwer Postgres, powtórz powyższe czynności na wszystkich serwerach Postgres.
- Cofnij wdrożenie proxy interfejsu API, które używa zasady StatisticsCollector , i wdróż je ponownie.
- Uruchom wywołania interfejsu API.
- 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.