5 Atklāšanas prototipi
Pārskats
Atklāšanas prototipi ir ligzdoti zema līmeņa atklāšanas noteikumi "vecākā" atklāšanas noteikuma ietvaros, kas ļauj izveidot daudzlīmeņu objektu atklāšanu ar tiem piederošajiem vienumiem, trigeriem utt. Piemēram, jūs varat vēlēties atklāt visas datubāzes instances datubāzes serverī, pēc tam atklāt tabulvietas katrai instancei un pēc tam atklāt tabulas katrai tabulvietai.
Atklāšanas prototipiem ir savi vienumu, trigeru, grafiku, hostu un atklāšanas prototipi. Ligzdots atklāšanas prototips izmantos to pašu JSON vērtību kā vecākais noteikums, ja norādīsiet tipu Ligzdots.
Atklāšanas prototipu ligzdošanas līmeņu skaits nav ierobežots.
Konfigurācija
Lai izveidotu atklāšanas prototipu:
- Noklikšķiniet uz Discovery prototypes esoša atklāšanas noteikuma rindā

- Noklikšķiniet uz Create discovery prototype

Šīs formas konfigurācijas lauki ir kopīgi ar parasto zema līmeņa atklāšanu.
Ja atvērtajā atklāšanas prototipa formā kā Type izvēlaties "Nested", tad atklāšanas noteikumi (no atklāšanas prototipa) tiek ģenerēti, pamatojoties uz JSON objektu no tās pašas JSON vērtības kā vecākatklāšanas noteikums. Piemēram, ja sākotnējais JSON ir [<objekts A>, <objekts B>] un ir viens ligzdota atklāšanas noteikuma prototips, tad tiks ģenerēti divi atklāšanas noteikumi, attiecīgi balstoties uz objekta A un objekta B datiem.
Šajā gadījumā atklāšanas prototips tiek aktivizēts vienlaikus ar vecāknoteikumu. Tādējādi ligzdotais noteikums var izmantot priekšapstrādi, lai strādātu ar citu to pašu datu "šķēlumu", ko vecāknoteikums jau ir ieguvis.
LLD makrosi no vecākā LLD noteikuma ir pieejami ligzdotajiem atklāšanas noteikumiem.
Ligzdotie LLD noteikumi atklātajos hostos
Ligzdotu zema līmeņa atklāšanas noteikumu var izmantot hosta veidnē, kas piešķirta hosta prototipam. Ja atklātajā hostā pastāv Ligzdots atklāšanas noteikums, tad JSON objekts, kas izmantots hosta atklāšanai, tiek nosūtīts arī visiem šī hosta ligzdotā tipa LLD noteikumiem. Papildinformāciju skatiet piemērā.
LLD makrosi no atklāšanas noteikuma, kas izveidoja hostu, ir pieejami ligzdotajiem atklāšanas noteikumiem.
Piemērs
Apskatīsim iespējamu atklāšanas prototipu pielietojumu, pamatojoties uz šādu daudzlīmeņu JSON piemēru.
[
{
"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. gadījums
Datubāzes instanču atklāšana datubāzes serverī, pēc tam tabulvietu atklāšana katrai instancei.
-
Jums ir vismaz viens hosts, kas saistīts ar datubāzes servera atklāšanu.
-
Izveidojiet šim hostam LLD kārtulu ar nosaukumu Atklāt datubāzes un tabulvietas.
-
Pārslēdzieties uz šīs kārtulas cilni LLD Macros un pievienojiet makrosu
{#DB}=$.database. -
Pievienojiet šai kārtulai vienuma prototipu ar nosaukumu Aktīvie savienojumi ar {#DB} (Tips: Aģents, Atslēga:
db.connections[{#DB}]). -
Tiek atklāti ar katru datubāzi saistītie vienumi:
Active connections to db1, Active connections to db2, Active connections to db3.
-
Izveidojiet šai kārtulai atklāšanas prototipu ar nosaukumu Atklāt tabulvietas priekš {#DB} (Tips: Nested, Atslēga:
db.tablespace.discovery[{#DB}]). -
Pārslēdzieties uz šī atklāšanas prototipa cilni Preprocessing un pievienojiet soli
JSONPath=$.tablespaces. -
Pārslēdzieties uz šī atklāšanas prototipa cilni LLD Macros un pievienojiet makrosu
{#TSNAME}=$.name. -
Izveidojiet šim atklāšanas prototipam vienuma prototipu ar nosaukumu Tabulvietas {#TSNAME} izmērs priekš {#DB} (Tips: Aģents, Atslēga:
db.ts.size[{#DB}, {#TSNAME}]). -
Tiek atklāti ar katras datubāzes katru tabulvietu saistītie vienumi:
Size of tablespace ts1 for db1, Size of tablespace ts2 for db1, Size of tablespace ts3 for db1,
Size of tablespace ts1 for db2, Size of tablespace ts2 for db2, Size of tablespace ts3 for db2,
Size of tablespace ts1 for db3, Size of tablespace ts2 for db3, Size of tablespace ts3 for db3.
ar atslēgām db.ts.size[db1,ts1], db.ts.size[db1,ts2], ... db.ts.size[db3,ts3].
Gadījums 2
Datubāzes instanču atklāšana datubāzes serverī, attēlojot tās kā atklātos hostus, un pēc tam tabulvietu atklāšana katrai instancei.
-
Jums ir vismaz viens hosts (saknes hosts), kas saistīts ar datubāzes servera atklāšanu.
-
Izveidojiet veidni, lai atklātu tabulvietas katrai datubāzei.
-
Izveidojiet šajā veidnē vienumu ar nosaukumu Aktīvie savienojumi ar {#DB} (Tips: Aģents, Atslēga:
db.connections[{#DB}]). -
Izveidojiet šai veidnei LLD kārtulu ar nosaukumu Atklāt tabulvietas (Tips: Ligzdots).
-
Pārslēdzieties uz šīs kārtulas cilni Priekšapstrāde un pievienojiet soli
JSONPath=$.tablespaces. -
Pārslēdzieties uz šīs kārtulas cilni LLD makrosi, pievienojiet makrosu
{#TSNAME}=$.name. -
Izveidojiet šai kārtulai vienuma prototipu ar nosaukumu Tabulvietas {#TSNAME} lielums datubāzei {#DB} (Tips: Aģents, Atslēga:
db.ts.size[{#DB}, {#TSNAME}]). -
Atgriežoties pie saknes hosta, izveidojiet šim hostam LLD kārtulu ar nosaukumu Atklāt datubāzes un tabulvietas.
-
Pārslēdzieties uz šīs kārtulas cilni LLD makrosi, pievienojiet makrosu
{#DB}=$.database. -
Pievienojiet šai kārtulai hosta prototipu ar nosaukumu Hosts datubāzei {#DB}.
-
Pārslēdzieties uz šī hosta prototipa cilni Makrosi, pievienojiet makrosu
{$DB}={#DB}(vienuma nosaukumam un atslēgai no 3. soļa). -
Piesaistiet 2. solī izveidoto veidni šim hosta prototipam.
-
Atklātie hosti satur atklātos vienumus, kas saistīti ar katru datubāzi un tās tabulvietām:
| Hosts | Vienumi |
|---|---|
| Hosts datubāzei db1 | Aktīvie savienojumi ar db1 Tabulvietas ts1 lielums datubāzei db1 Tabulvietas ts2 lielums datubāzei db1 Tabulvietas ts3 lielums datubāzei db1 |
| Hosts datubāzei db2 | Aktīvie savienojumi ar db2 Tabulvietas ts1 lielums datubāzei db2 Tabulvietas ts2 lielums datubāzei db2 Tabulvietas ts3 lielums datubāzei db2 |
| Hosts datubāzei db3 | Aktīvie savienojumi ar db3 Tabulvietas ts1 lielums datubāzei db3 Tabulvietas ts2 lielums datubāzei db3 Tabulvietas ts3 lielums datubāzei db3 |