Lookups API
Změny lookupu mohou zahrnovat vytváření nebo mazání celé struktury lookupu, stejně jako přidávání, aktualizaci nebo odstraňování konkrétních položek v lookupu. Položky lze navíc automaticky odstranit při jejich vypršení platnosti. Tyto změny lze provést prostřednictvím UI systému (HTTPS API) nebo prostřednictvím Apache Kafka.
Události lookupu jsou zasílány každou komponentou, která vytváří události lookupu, do témat lmio-lookups
.
Struktura události lookupu
Událost lookupu má JSON strukturu se třemi povinnými atributy: action
, lookup_id
a data
. Atributy @timestamp
a tenant
jsou přidávány automaticky spolu s dalšími konfigurovanými meta atributy.
action
Specifikuje akci, kterou událost lookupu způsobila. Akce může být prováděna na celé lookupu nebo jen na jedné z jejích položek. Podívejte se na níže uvedený seznam, který zahrnuje všechny dostupné akce a jejich přidružené události.
lookup_id
ID nebo název lookupu. ID lookupu v událostech lookupu také obsahuje název tenantu po tečce .
, takže každá komponenta ví, pro který tenant je lookup specifický.
data
Specifikace dat lookupu (tj. položky lookupu), která mají být vytvořena nebo aktualizována, stejně jako metainformace (v případě smazání položky).
Položky lookupu obsahují své ID v atributu _id
struktury data
. _id
je řetězec založený na:
Jediný klíč
Pokud má lookup pouze jeden klíč (např. userName), _id
je samotná hodnota pro řetězcovou hodnotu.
'data': {
'_id': 'JohnDoe'
}
...
Pokud je hodnota v bajtech, _id
je UTF-8 dekódovaná řetězcová reprezentace hodnoty. Pokud hodnota není ani řetězec, ani bajty, je zpracována stejně jako ID při použití složených klíčů.
Složený klíč
Pokud se lookup skládá z více klíčů (např. [userName, location]), _id
je hash reprezentace hodnoty.
Původní hodnoty jsou pak uloženy v atributu _keys
uvnitř struktury data
:
'data': {
'_id': '<INTERNAL_HASH>',
'_keys': ['JohnDoe', 'Company 1']
}
...
Vytvořit lookup
Když je lookup vytvořen, je vygenerována následující akce:
{
'@timestamp': <UNIX_TIMESTAMP>,
'tenant': <TENANT>,
'action': 'create_lookup',
'data': {},
'metadata': {
'_keys': ['key1name', 'key2name' ...]
...
},
'lookup_id': 'myLookup.tenant'
}
Metadata obsahují informace o vytvoření lookupu, jako jsou názvy jednotlivých klíčů (např. [userName, location]) v případě složených klíčů.
Smazat lookup
Když je lookup smazán, je vygenerována následující akce:
{
'@timestamp': <UNIX_TIMESTAMP>,
'tenant': <TENANT>,
'action': 'delete_lookup',
'data': {},
'lookup_id': 'myLookup.tenant'
}
Vytvořit položku
Když je vytvořena položka, je vygenerována následující akce:
{
'@timestamp': <UNIX_TIMESTAMP>,
'tenant': <TENANT>,
'action': 'create_item',
'data': {
'_id': 'newItemId',
'_keys': [],
...
},
'lookup_id': 'myLookup.tenant'
}
Aktualizovat položku
Když je položka aktualizována, je vygenerována následující akce:
{
'@timestamp': <UNIX_TIMESTAMP>,
'tenant': <TENANT>,
'action': 'update_item',
'data': {
'_id': 'existingOrNewItemId',
'_keys': [],
...
},
'lookup_id': 'myLookup.tenant'
}
Smazat položku
Když je položka smazána, je vygenerována následující akce.
Vypršení platnosti
V případě smazání z důvodu vypršení platnosti:
{
'@timestamp': <UNIX_TIMESTAMP>,
'tenant': <TENANT>,
'action': 'delete_item',
'data': {
'_id': 'existingItemId',
'reason': 'expiration'
},
'lookup_id': 'myLookup.tenant'
}
Prosím, vezměte na vědomí: Pokud není volba use_default_expiration_when_update
zakázána (nastavena na false) v metainformacích lookupu, doba platnosti je obnovována při každé aktualizaci položky lookupu (aktuální čas + výchozí doba platnosti). Smazání z důvodu vypršení platnosti se tedy stane pouze v případě, že nebyla provedena žádná aktualizace položky po dobu trvání doby platnosti.
Smazat
Z jiných důvodů:
{
'@timestamp': <UNIX_TIMESTAMP>,
'tenant': <TENANT>,
'action': 'delete_item',
'data': {
'_id': 'existingItemId',
'reason': 'delete'
},
'lookup_id': 'myLookup.tenant'
}