5 Prototips de descoberta
Visió general
Els prototips de descoberta són regles de descoberta heretades dins d'una regla de descoberta "pare", que permeten crear una descoberta multinivell d'objectes amb els seus propis elements, activadors, etc. Per exemple, podeu voler trobar totes les instàncies de base de dades en un servidor de bases de dades, després trobar espais de taules per a cada instància i, tot seguit, trobar taules per a cada espai de taules.
Els prototips de descoberta tenen els seus propis prototips d'element, trigger, gràfic, equip i descoberta. Un prototip de descoberta heretat utilitzarà el mateix valor JSON que la regla principal si especifiqueu un tipus Heretat.
Els nivells d'herència per als prototips de descoberta són il·limitats.
Configuració
Per crear un prototip de descoberta:
- Feu clic a Prototips de descoberta a la filera d'una regla de descoberta existent

- Feu clic a Crear prototip de descoberta

Els camps de configuració d'aquest formulari es comparteixen amb la descoberta de baix nivell normal.
Si trieu "Heretat" com a Tipus al formulari de prototip de descoberta obert, les regles de descoberta (del prototip de descoberta) es generen basant-se en un objecte JSON del mateix valor JSON que la regla de descoberta principal. Per exemple, si el JSON original és [<objecte A>, <objecte B>] i hi ha un prototip de regla de descoberta heretada, es generarien dues regles de descoberta basades en les dades de l'objecte A i l'objecte B respectivament.
En aquest cas, el prototip de descoberta s'activa al mateix temps que la regla principal. La regla heretada, per tant, pot utilitzar el preprocessament per treballar en una altra "porció" de les mateixes dades, ja adquirida pel principal.
Les macros LLD de la regla LLD principal són disponibles per a les regles de descoberta heretades.
Regles LLD heretades en equips trobats
Es pot utilitzar una regla de descoberta de baix nivell heretada en una plantilla d'equip assignada al prototip d'equip. Si existeix una regla de descoberta heretada en un equip trobat, l'objecte JSON utilitzat per trobar l'equip també s'envia a totes les regles LLD de tipus heretat en aquest equip. Per a més detalls, consulteu l'exemple.
Les macros LLD de la regla de descoberta que va crear l'equip són disponibles per a les regles de descoberta heretades.
Exemple
Il·lustrem una possible aplicació dels prototips de descoberta, basant-nos en la recepció del següent exemple de JSON multinivell.
[
{
"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" }
]
}
]
Cas 1
Descoberta d'instàncies de base de dades en un servidor de bases de dades i, tot seguit, descoberta dels tablespaces per a cada instància.
-
Teniu com a mínim un equip relacionat amb la descoberta del servidor de bases de dades.
-
Creeu una regla LLD per a aquest equip anomenada Trobar bases de dades i tablespaces.
-
Canvieu a la pestanya Macros LLD d'aquesta regla i afegiu la macro
{#DB}=$.database. -
Afegiu un prototip d'element per a aquesta regla anomenat Connexions actives a {#DB} (Tipus: Agent, Clau:
db.connections[{#DB}]). -
Es troben els elements relacionats amb cada base de dades:
Connexions actives a db1, Connexions actives a db2, Connexions actives a db3.
-
Creeu un prototip de descoberta per a aquesta regla anomenat Discover tablespaces for {#DB} (Tipus: Nested, Key:
db.tablespace.discovery[{#DB}]). -
Canvieu a la pestanya Preprocessing d'aquest prototip de descoberta i afegiu la passa
JSONPath=$.tablespaces. -
Canvieu a la pestanya LLD Macros d'aquest prototip de descoberta i afegiu la macro
{#TSNAME}=$.name. -
Creeu un prototip d'element per a aquest prototip de descoberta anomenat Size of tablespace {#TSNAME} for {#DB} (Tipus: Agent, Key:
db.ts.size[{#DB}, {#TSNAME}]). -
Es troben els elements relacionats amb cada espai de taules de cada base de dades:
Mida de l'espai de taules ts1 per a db1, Mida de l'espai de taules ts2 per a db1, Mida de l'espai de taules ts3 per a db1,
Mida de l'espai de taules ts1 per a db2, Mida de l'espai de taules ts2 per a db2, Mida de l'espai de taules ts3 per a db2,
Mida de l'espai de taules ts1 per a db3, Mida de l'espai de taules ts2 per a db3, Mida de l'espai de taules ts3 per a db3.
amb les claus db.ts.size[db1,ts1], db.ts.size[db1,ts2], ... db.ts.size[db3,ts3].
Cas 2
Descoberta d'instàncies de base de dades al servidor de bases de dades representant-les com a equips trobats i, tot seguit, descoberta dels espais de taula per a cada instància.
-
Teniu almenys un equip (equip arrel) relacionat amb la descoberta del servidor de bases de dades.
-
Creeu una plantilla per trobar els espais de taula per a cada base de dades.
-
Creeu un element en aquesta plantilla anomenat Connexions actives a {#DB} (Tipus: Agent, Clau:
db.connections[{#DB}]). -
Creeu una regla LLD per a aquesta plantilla anomenada Trobar tablespaces (Tipus: Heretat).
-
Canvieu a la pestanya Preprocessament d'aquesta regla i afegiu la passa
JSONPath=$.tablespaces. -
Canvieu a la pestanya Macros LLD d'aquesta regla, afegiu la macro
{#TSNAME}=$.name. -
Crea un prototip d'element per a aquesta regla anomenada Mida dels tablespaces {#TSNAME} per a {#DB} (Tipus: Agent, Clau:
db.ts.size[{#DB}, {#TSNAME}]). -
De tornada a l'equip arrel, crea una regla LLD per a aquest equip anomenada Trobar bases de dades i tablespaces.
-
Canvia a la pestanya Macros LLD d'aquesta regla i afegeix la macro
{#DB}=$.database. -
Afegeix un prototip d'equips per a aquesta regla anomenat Equip per a la base de dades {#DB}.
-
Canvia a la pestanya Macros d'aquest prototip d'equips i afegeix la macro
{$DB}={#DB}(per al nom i la clau de l'element del pas 3). -
Enllaça la plantilla del pas 2 a aquest prototip d'amfitrió.
-
Els equips trobats contenen els elements trobats relacionats amb cada base de dades i els seus espais de taules:
| Equip | Elements |
|---|---|
| Equip per a la base de dades db1 | Connexions actives a db1 Mida de l'espai de taules ts1 per a db1 Mida de l'espai de taules ts2 per a db1 Mida de l'espai de taules ts3 per a db1 |
| Equip per a la base de dades db2 | Connexions actives a db2 Mida de l'espai de taules ts1 per a db2 Mida de l'espai de taules ts2 per a db2 Mida de l'espai de taules ts3 per a db2 |
| Equip per a la base de dades db3 | Connexions actives a db3 Mida de l'espai de taules ts1 per a db3 Mida de l'espai de taules ts2 per a db3 Mida de l'espai de taules ts3 per a db3 |