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:
- Wygeneruj drzewo ZooKeeper za pomocą tego polecenia:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
- W wynikach drzewa ZooKeeper wyszukaj zmienną niestandardową.
- Jeśli zmienna niestandardowa istnieje w drzewie ZooKeeper, wykonaj te
polecenia, aby sprawdzić, czy 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.
Rozdzielczość
Rozwiązanie 1. Uruchom ponownie serwer Postgres
- 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:
- Jeśli nie istnieje, utwórz na
serwerze Postgres plik
/opt/apigee/customer/application/postgres-server.properties. - 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
- Uruchom ponownie 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.
- Wycofaj wdrożenie i wdróż ponownie proxy interfejsu API, które używa zasady StatisticsCollector.
- Uruchom wywołania interfejsu API.
- 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.