itemprototype.create

Descripción

object itemprototype.create(object/array itemPrototypes)

Este método permite crear nuevos prototipos de métricas.

Este método solo está disponible para los tipos de usuario Administrador y Superadministrador. Los permisos para llamar al método se pueden revocar en la configuración del rol de usuario. Ver Roles de usuario para más información.

Parámetros

(objeto/matriz) Prototipo de métrica a crear.

Además de las propiedades de prototipo de métrica estándar, el método acepta los siguientes parámetros.

Parámetro Tipo Descripción
ruleid ID ID de la regla LLD a la que pertenece la métrica.

Comportamiento del parámetro:
- requerido
preprocessing matriz Opciones de preprocesamiento del prototipo de métrica.
tags matriz Etiquetas del prototipo de métrica.

Valores de retorno

(objeto) Devuelve un objeto que contiene los ID de los prototipos de métrica creados bajo la propiedad itemids. El orden de las identificaciones devueltas. coincide con el orden de los prototipos de métrica pasados.

Ejemplos

Creando un prototipo de métrica

Cree un prototipo de métrica para monitorear el espacio libre en disco en un sistema de archivos descubierto. Las métricas descubiertas deben ser métricas numéricas del agente Zabbix actualizados cada 30 segundos.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Free disk space on {#FSNAME}",
               "key_": "vfs.fs.size[{#FSNAME},free]",
               "hostid": "10197",
               "ruleid": "27665",
               "type": 0,
               "value_type": 3,
               "interfaceid": "112",
               "delay": "30s"
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27666"
               ]
           },
           "id": 1
       }

Creando un prototipo de métrica con preprocesamiento

Crea una métrica usando el cambio por segundo y un multiplicador personalizado como segundo paso.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Incoming network traffic on {#IFNAME}",
               "key_": "net.if.in[{#IFNAME}]",
               "hostid": "10001",
               "ruleid": "27665",
               "type": 0,
               "value_type": 3,
               "delay": "60s",
               "units": "bps",
               "interfaceid": "1155",
               "preprocessing": [
                   {
                       "type": 10,
                       "params": "",
                       "error_handler": 0,
                       "error_handler_params": ""
                   },
                   {
                       "type": 1,
                       "params": "8",
                       "error_handler": 2,
                       "error_handler_params": "10"
                   }
               ]
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "44211"
               ]
           },
           "id": 1
       }

Creando prototipo de métrica dependiente

Cree un prototipo de métrica dependiente para el prototipo de métrica principal con ID 44211. Sólo se permiten dependencias en el mismo equipo (template/discovery rule), por lo tanto, la métrica princiopal y dependiente deben tener el mismo ID de equipo e ID de regla.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
             "hostid": "10001",
             "ruleid": "27665",
             "name": "Dependent test item prototype",
             "key_": "dependent.prototype",
             "type": 18,
             "master_itemid": "44211",
             "value_type": 3
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "44212"
               ]
           },
           "id": 1
       }

Crear prototipo de métrica de agente HTTP

Cree un prototipo de métrica con URL utilizando macro de usuario, campos de consulta y encabezados personalizados.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "type": "19",
               "hostid": "10254",
               "ruleid": "28256",
               "interfaceid": "2",
               "name": "api item prototype example",
               "key_": "api_http_item",
               "value_type": 3,
               "url": "{$URL_PROTOTYPE}",
               "query_fields": [
                   {
                       "name": "min",
                       "value": "10"
                   },
                   {
                       "name": "max",
                       "value" "100"
                   }
               ],
               "headers": [
                   {
                       "name": "X-Source",
                       "value": "api"
                   }
               ],
               "delay": "35"
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "28305"
               ]
           },
           "id": 1
       }

Crear prototipo de métrica de script

Cree una recopilación de datos sencilla utilizando un prototipo de métrica de script.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Script example",
               "key_": "custom.script.itemprototype",
               "hostid": "12345",
               "type": 21,
               "value_type": 4,
               "params": "var request = new HttpRequest();\nreturn request.post(\"https://postman-echo.com/post\", JSON.parse(value));",
               "parameters": [
                   {
                       "name": "host",
                       "value": "{HOST.CONN}"
                   }
               ],
               "timeout": "6s",
               "delay": "30s"
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "23865"
               ]
           },
           "id": 1
       }

Fuente

CItemPrototype::create() en ui/include/classes/api/services/CItemPrototype.php.