Niestandardowe wymiary nie pojawiają się, jeśli skonfigurowano wiele grup

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

Krótki opis problemu

Zmienna niestandardowa utworzona za pomocą zasady Statistics Collector policy nie jest widoczna w sekcji Wymiary niestandardowe w raportach niestandardowych Analytics w nowym interfejsie Edge.

Komunikat o błędzie

Po ponownym uruchomieniu w logu systemowym edge-postgres-server pojawi się ten błąd w przypadku każdej kombinacji organizacji i środowiska, w której brakuje ścieżki:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

Możliwe przyczyny

Przyczyna Opis Instrukcje rozwiązywania problemów, których dotyczy problem
W przypadku kombinacji organizacji i środowiska brakuje ścieżki do właściwości ZooKeeper. Gdy brakuje ścieżki ZooKeeper /organizations//environments//properties, nie można utworzyć wymiarów niestandardowych. Użytkownicy Edge Private Cloud

Przyczyna: w przypadku kombinacji organizacji i środowiska brakuje ścieżki do właściwości ZooKeeper

Diagnostyka

Analityka jest włączona w przypadku kombinacji organizacji i środowiska za pomocą interfejsu Enable analytics API, który wypełnia /organizations//environments//properties w drzewie ZooKeeper. Gdy ten interfejs API nie działa, komponent edge-postgres-server nie może utworzyć wymiarów niestandardowych, a w pliku system.log pojawi się ten błąd:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

Zwykle dzieje się tak, gdy organizacja została wdrożona w czasie, gdy istniała więcej niż 1 grupa Analytics, która używała tych samych identyfikatorów UUID serwera postgres. Aby sprawdzić, ile grup Analytics istnieje, uruchom to wywołanie interfejsu API:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

Jeśli ten interfejs API zwróci wiele grup, najprawdopodobniej jest to przyczyna problemu. W tym przykładzie widzimy, że istnieją 2 grupy, które różnią się tylko łącznikiem: axgroup-001 i axgroup001.

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

Problem występuje, jeśli identyfikator UUID serwera postgres skonfigurowany dla każdej grupy axgroup jest taki sam. Aby szybko to sprawdzić, uruchom to polecenie:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

W tym przykładowym wyniku można szybko porównać identyfikatory UUID serwera postgres, aby sprawdzić, czy są takie same:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

Rozdzielczość

Tego samego zestawu serwerów PostgreSQL nie można przypisać do 2 axgroups. Najszybszym sposobem rozwiązania problemu jest usunięcie informacji o serwerze postgres z jednej grupy axgroup i przypisanie wszystkich zakresów (kombinacji organizacji i środowiska) do drugiej grupy. Aby to zrobić:

  1. Usuń komponenty serwera postgres z jednej z 2 grup axgroup, korzystając z instrukcji w sekcji Dodawanie i usuwanie komponentów Analytics w grupach Analytics. Jeśli problemy występują tylko w przypadku zakresów innych niż produkcyjne, wybierz grupę axgroup, która nie ma zakresu produkcyjnego. W przeciwnym razie wybierz grupę axgroup z najmniejszą liczbą zakresów.
  2. Usuń wszystkie zakresy z grupy axgroup, która nie ma już serwerów postgres, oraz te w przypadku których występuje problem z wymiarami niestandardowymi. Zakładając axgroup-001 z powyższego przykładu jest grupą, której chcesz użyć, musisz użyć tego polecenia, aby usunąć zakres dla organizacji myorg i środowiska prod:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Włącz analitykę za pomocą interfejsu Enable analytics API.
  4. Uruchom ponownie komponent edge-postgres-server w głównym węźle postgres oraz wszystkie zainstalowane komponenty edge-qpid-server za pomocą tych poleceń:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Sprawdź, czy błąd podany w sekcji Komunikat o błędzie powyżej nie występuje już w pliku dziennika serwera Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Sprawdź, czy wymiary niestandardowe wyświetlają się w nowym interfejsie Edge.

Jeśli problem nadal występuje, przejdź do sekcji Informacje diagnostyczne, które należy zebrać.

Informacje diagnostyczne, które należy zebrać

Jeśli problem nadal występuje po wykonaniu poprzednich instrukcji, zbierz te informacje diagnostyczne. Skontaktuj się z zespołem pomocy Apigee Edge i udostępnij mu te informacje:

  1. Plik edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log od czasu ostatniego ponownego uruchomienia.
  2. Wynik tego wywołania interfejsu API zarządzania Google Analytics:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. Wynik drzewa ZooKeeper uzyskany za pomocą tego polecenia:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt