Hiba Állapot Menedzsment
Az entitások állapotának és hibaeseményeinek értékelése
Amint azt a Oldal 2,említettük, a hibaprofilok mindig az üzemekhez vannak rendelve, és ennek következtében az entitás Status
csak ettől a hierarchikus szinttől kezdve változhat. Ha egy hibaeseményt azonosítanak és aktiválnak egy bizonyos hierarchikus szinten, akkor az összes hierarchikus felsőbbrendű entitáshoz eljut (az üzemi szinttől kezdve) és ez azt jelenti, hogy az Status
ezek entitásai egységesen megváltoznak; ezt a viselkedést a hierarchikus állapotterjesztés elveként azonosítják.
A GET Status
API lehetővé teszi egy Status
a Plant
, Logger
és/vagy Device
(a hierarchikus szinttől és a csomagtól függően).
Ennek az API-nak a sajátossága a dinamikus válasz: mindig visszaadja a hierarchikusan alacsonyabb entitások robbanását, amelyeknek Status
eltér a NORMAL
, ól, így azt jelzi, hogy melyeket érintik az aktív hibaesemények (de nem az esemény tényleges hibatípusát).
Vegyük példának a következő hierarchikus sémát, és tegyük fel, hogy ellenőrizni akarjuk az Status
az Plant 1, hogy megértsük, vannak-e aktív hibaesemények:
Az üzem hierarchikus szintjén hívjuk meg a GET Plant Status
API:
https://api.auroravision.net/api/rest/v1/plant/{entityID}/status
Ha nincs aktív hibaesemény, akkor olyan választ kapunk, amelyben az Status
az Plant 1 egyenlő lesz a NORM
(értékkel ami egyenértékű a NORMAL
):
Ha van legalább egy aktív hibaesemény, az azt jelenti, hogy az Plant 1, regisztrált eszközök legalább egyikéhez, amelyek tehát az utóbbi hierarchikus utódjai, aktív hibaesemény van társítva; ebben az esetben az API válasza dinamikusan alkalmazkodik az Status
az Plant 1 jának felrobbanásával, de az összes olyan hierarchikus alárendelt entitáséval is, amelyek Status
különbözik a NORM
:
Láthatjuk, hogyan strukturáltabb a válasz, és hogy az Plant 1 állapota most egyenlő a MEDIUM
, értékkel, ami azt jelzi, hogy bizonyos esetekben egy hibaesemény aktív alacsonyabb hierarchikus szintű entitások. Ez a hibaesemény az Inverter 1, esetében aktív, mivel az API robbantott választ ad nekünk az Plant 1 (LVL 3
) kezdve minden hierarchikus szinten az Inverter 1 (LVL 5
). Ezért mindhárom entitás Status
oegyenlő a MEDIUM
, értékkel, a hierarchikus terjedés elve miatt, amelyet az oldal tetején említettünk.
A dinamikus válaszok GET Status
API-val történő kezelésének elve az alacsonyabb hierarchikus szinteken is jelen van.
Ha a fenti példában a GET Logger Status
fogjuk hívni, a visszaküldött válasz a következő lesz:
Láthatjuk, hogy a válasz pontosan ugyanolyan szerkezetű, mint a GET Plant Status
API val kapott válasz, ahol a Logger 1 és az Inverter 1 egyaránt Status
egyenlő a MEDIUM
értékkel. Az egyetlen különbség az eggyel kevesebb hierarchikus szint jelenléte (mert alacsonyabb hierarchikus szintű célzott erőforrásaink vannak).
Ezért láttuk, hogyan érvényesül a hierarchikus terjedés elve: minden olyan eszköz, amelynek aktív hibaeseménye van, ami miatt az Status
eltér a NORMAL
, egyidejűleg megváltoztatja a az összes hierarchikusan felsőbbrendű entitás Status
(az üzemi szinttől kezdve). Ez lehetővé teszi a hibák meglétének vagy hiányának azonnali megkülönböztetését a GET Plant Status
API kihasználásával.
Nyilvánvalóan, ha megbizonyosodtunk a hibaesemények jelenlétéről, kíváncsiak vagyunk arra, hogy mik ezek a hibaesemények. Ehhez használhatjuk a GET Events
API amely lehetővé teszi egy Plant
, Logger
és/vagy Device
hibaesemények beszerzését (attól függően, hogy milyen hierarchikus szintre vagyunk kíváncsiak) speciális szűréssel: kategória, típus, állapot és előfordulás.
Nézzük meg a teljes API-kérést, majd bontsuk le, hogy részletesen elemezhessük:
https://api.auroravision.net/api/rest/v1/{plant,logger,device}/{entityID}/events?eventsKind={Profile,Source}&eventsType={eventsType}&eventsState={ALL,ACTIVE,CLOSED}&eventsOccurrence={H24,D7,D30}&page={pageNumber}
Az path
, amely lehetővé teszi, hogy a kívánt erőforrásokra mutasson, mindig megkövkódot, és a hierarchikus szinttől és a programcsomagtól függően lehet Plant
, Logger
vagy Device
EID:
https://api.auroravision.net/api/rest/v1/{plant,logger,device}/{entityID}/events
Az API mindig szüksége van az {eventsKind}
lekérdezési paraméterre, hogy meg tudja különböztetni a meghívandó hibaesemények típusát.
Ennek a paraméternek két különböző értéke lehet:
Profile
: lehetővé teszi a profiltípusú hibaesemények beszerzését, azaz azokat, amelyeket az Aurora Vision a hibaprofil alapján aktivál, annak konfigurált szabályaival, a vizsgált üzemhez társítva (vagy az egyik eszközhöz hierarchikusan az utóbbi gyermekei)Source
: lehetővé teszi a forrás típusú hibaesemények beszerzését, azaz az eszköz által azonosított géphibákat, amelyek ezután közöljük az Aurora Vision (amely a küldő eszköz alapján modellezi őket)
Korábban azt mondtuk, hogy a hibaprofilban meghatározott bármely kategóriába tartozó hiba aktiválása az adatok és/vagy a forrásesemények meglététől/hiányától függhet. Profile
hibaesemények aktiválhatók, ha bizonyos feltételek észlelik az adatokon, vagy amikor egy eszköz közli az Aurora Visionnal egy Source
hibaesemény azonosítását, amely a profilhiba kategóriák egyikébe esik. Figyelembe véve, hogy a forrásesemények nehezebben érthetők, mint a profilesemények, mivel rövidítésekből állnak, amelyek eszközről eszközre változhatnak, és hogy az Aurora Vision implicit módon kezeli ezen események modellezését hibakategóriákban, hogy aktiválja a megfelelő profilhibát. esemény esetén tanácsos az API mindig a következőképpen szűrni:
https://api.auroravision.net/api/rest/v1/{plant,logger,device}/{entityID}/events?eventsKind=Profile
Bár a többi queryParameters
nem szükséges a válasz megszerzéséhez, a hibaesemények kezelésekor mindig hasznos lehet a típus, az előfordulás és az állapot szűrése:
eventsType
: lehetővé teszi a profilhiba-események típusának szűrését; egyszerre csak egy típusú hibaesemény szűrhető ki (a hibaesemények típusainak teljes táblázatát lásd a Oldal 4). Ha nincs beillesztve az API-ba, akkor minden eseménytípus visszaadásra kerül;eventsOccurrence
: lehetővé teszi a hibaesemények előfordulásának szűrését; Az elfogadott értékek a következők24H
, 24 órás időablakhoz,7D
, 7 napos időablakhoz, vagy30D
, egy ideig 30 napos ablak. Ha nincs beillesztve az API-ba, akkor az üzem élettartamát lefedő összes esemény visszaadásra kerül;eventsState
: lehetővé teszi a hibaesemények állapotának szűrését; Az elfogadott értékek azACTIVE
, az aktív események esetében, amelyeknek ezért nem volt záró időbeli szingularitásuk, aCLOSED
, a zárt eseményeknél, vagy azALL
, a kérésnél aktív és zárt események egyszerre. Ha nincs beillesztve az API-ba, akkor minden aktív és zárt esemény visszaküldésre kerül;
Jelenleg minden eszközünk rendelkezésre áll, hogy megértsük, mely hibaesemények aktívak az Plant 1:
https://api.auroravision.net/api/rest/v1/plant/12345678/events?eventsKind=Profile&eventsOccurrence=24H&eventsState=ACTIVE
Az plant
EID-jének megadásával Plant 1 (12345678
), az ACTIVE
hiba események lekérésével a hierarchikus szintjére helyeztük magunkat. az utolsó 24H
:
A válaszból láthatjuk, hogy két profil típusú hibaesemény aktív: egy DEVCOM
az Inverter 1 esetén és egy LOGCOM
a Logger 1 naplózó. A két hibaesemény különböző időpontokban aktiválódik, és a definíciókra hivatkozva feltételezhetjük, hogy az Inverter 1 leállította az adatok küldését a Logger 1 nek az eventStart
időpontban; taz utóbbi továbbra is megfelelően kommunikált az Aurora Vision, de ezt követően az eventStart
nál abbahagyta.
A hierarchikus állapotterjesztés elve az ilyen típusú API-kra is érvényes, így megerősítve, hogy ha egy hibaeseményt azonosítanak és aktiválnak egy bizonyos hierarchikus szinten, akkor az a hierarchikusan magasabb rendű entitásokhoz is eljut; ez azt jelenti, hogy egy eszközt érintő hibaesemény az üzemi hierarchia szintjén is megjelenik, amint azt a fenti példából jól érzékelhetjük.