5 Прототипови откривања
Преглед
Прототипови откривања су угнежђена правила откривања унутар "родитељског" правила откривања, што омогућава креирање вишеслојног откривања објеката са сопственим ставкама, окидачима итд. На пример, можда желите да откријете све инстанце базе података на серверу базе података, затим откријете табеларне просторе за сваку инстанцу, а затим откријете табеле за сваки табеларни простор.
Прототипови откривања имају сопствене прототипове ставки, окидача, графикона, домаћина и откривања. Угнежђени прототип откривања ће користити исту JSON вредност као и родитељско правило ако наведете тип Угнежђено.
Нивои угнежђивања за прототипове откривања су неограничени.
Конфигурација
Да бисте креирали прототип откривања:
- Кликните на Прототипови откривања у реду постојећег правила откривања

- Кликните на Креирај прототип откривања

Поља конфигурације овог обрасца се деле са редовним откривањем ниског нивоа.
Ако изаберете "Угнежђено" као Тип у отвореном обрасцу прототипа откривања, онда се правила откривања (из прототипа откривања) генеришу на основу JSON објекта из исте JSON вредности као и надређено правило откривања. На пример, ако је оригинални JSON [<object A>, <object B>] и постоји један угнежђени прототип правила за откривање, онда би се генерисала два правила за откривање на основу података објекта А и објекта Б, респективно.
У овом случају, прототип за откривање се активира истовремено са матичним правилом. Тако угнежђено правило може да користи претходну обраду да би радило на другом "сечку" истих података, које је матични објекат већ прикупио.
LLD макрои из матичног LLD правила су доступни за угнежђена правила за откривање.
Угњеждена LLD правила на откривеним домаћина
Угњеждено правило откривања ниског нивоа може се користити на шаблону домаћину додељеном прототипу домаћина. Ако Угњеждено правило откривања постоји на откривеном домаћину, онда се JSON објекат који се користи за откривање домаћина такође шаље свим LLD правилима угнежђеног типа на овом домаћину. За више детаља погледајте пример.
LLD макрои из правила откривања које је креирало домаћина доступни су за угњеждено правила откривања.
Пример
Илуструјмо могућу примену прототипова за откривање, на основу следећег примера вишеслојног JSON-а.
[
{
"database": "db1",
"created_at": "2024-02-01T12:30:00Z",
"encoding": "UTF8",
"tablespaces": [
{ "name": "ts1", "max_size": "10GB" },
{ "name": "ts2", "max_size": "20GB" },
{ "name": "ts3", "max_size": "15GB" }
]
},
{
"database": "db2",
"created_at": "2023-11-15T08:45:00Z",
"encoding": "UTF16",
"tablespaces": [
{ "name": "ts1", "max_size": "5GB" },
{ "name": "ts2", "max_size": "25GB" },
{ "name": "ts3", "max_size": "30GB" }
]
},
{
"database": "db3",
"created_at": "2024-01-05T15:10:00Z",
"encoding": "UTF8",
"tablespaces": [
{ "name": "ts1", "max_size": "12GB" },
{ "name": "ts2", "max_size": "18GB" },
{ "name": "ts3", "max_size": "22GB" }
]
}
]
Случај 1
Откривање инстанци базе података на серверу базе података, а затим откривање табеларних простора за сваку инстанцу.
-
Имате барем једног домаћина повезаног са откривањем сервера базе података.
-
Креирајте LLD правило за овог домаћина под називом Откривање база података и табеларних простора.
-
Пребаците се на картицу LLD макрои на овом правилу, додајте макро
{#DB}=$.database. -
Додајте прототип ставке за ово правило под називом Активне везе са {#DB} (Тип: Агент, Кључ:
db.connections[{#DB}]). -
Откривају се ставке повезане са сваком базом података:
Активне везе са db1, Активне везе са db2, Активне везе са db3.
-
Направите прототип откривања за ово правило под називом Откривање табеларног простора за {#DB} (Тип: Угњеждено, Кључ:
db.tablespace.discovery[{#DB}]). -
Пребаците се на картицу Предобрада овог прототипа откривања и додајте корак
JSONPath=$.tablespaces. -
Пребаците се на картицу LLD макрои овог прототипа откривања, додајте макро
{#TSNAME}=$.name. -
Направите прототип ставке за овај прототип откривања под називом Величина табеларног простора {#TSNAME} за {#DB} (Тип: Агент, Кључ:
db.ts.size[{#DB}, {#TSNAME}]). -
Откривене су ставке везане за сваки табеларни простор сваке базе података:
Величина табеларног простора ts1 за db1, Величина табеларног простора ts2 за db1, Величина табеларног простора ts3 за db1,
Величина табеларног простора ts1 за db2, Величина табеларног простора ts2 за db2, Величина табеларног простора ts3 за db2,
Величина табеларног простора ts1 за db3, Величина табеларног простора ts2 за db3, Величина табеларног простора ts3 за db3.
са кључевима db.ts.size[db1,ts1], db.ts.size[db1,ts2], ... db.ts.size[db3,ts3].
Случај 2
Откривање инстанци базе података на серверу базе података представљањем истих као откривених домаћина, а затим откривањем табеларних простора за сваку инстанцу.
-
Имате барем једног домаћина (коренски домаћин) повезан са откривањем сервера базе података.
-
Направите шаблон за откривање табеларних простора за сваку базу података.
-
Направите ставку у овом шаблону под називом Активне везе са {#DB} (Тип: Агент, Кључ:
db.connections[{#DB}]). -
Направите LLD правило за овај шаблон под називом Откривање табеларних простора (Тип: Угњеждено).
-
Пребаците се на картицу Предобрада овог правила и додајте корак
JSONPath=$.tablespaces. -
Пребаците се на картицу LLD Макрои овог правила, додајте макро
{#TSNAME}=$.name. -
Направите прототип ставке за ово правило под називом Величина табеларног простора {#TSNAME} за {#DB} (Тип: Агент, Кључ:
db.ts.size[{#DB}, {#TSNAME}]). -
Назад на коренском домаћину, креирајте LLD правило за овог домаћина под називом Откријте базе података и табеларне просторе.
-
Пребаците се на картицу LLD Макрои на овом правилу, додајте макро
{#DB}=$.database. -
Додајте прототип домаћина за ово правило под називом Домаћин за базу података {#DB}.
-
Пребаците се на картицу Макрои на овом прототипу домаћина, додајте макро
{$DB}={#DB}(за име и кључ ставке из корака 3). -
Повежите шаблон из корака 2 са овим прототипом домаћина.
-
Откривени домаћини садрже откривене ставке повезане са сваком базом података и њеним табеларним просторима:
| Host | Items |
|---|---|
| Домаћин за базу података db1 | Активне везе са db1 Величина табеларног простора ts1 за db1 Величина табеларног простора ts2 за db1 Величина табеларног простора ts3 за db1 |
| Домаћин за базу података db2 | Активне везе са db2 Величина табеларног простора ts1 за db2 Величина табеларног простора ts2 за db2 Величина табеларног простора ts3 за db2 |
| Домаћин за базу података db3 | Активне везе са db3 Величина табеларног простора ts1 за db3 Величина табеларног простора ts2 за db3 Величина табеларног простора ts3 за db3 |