[comment]: # translation:outdated

[comment]: # ({1a1e2756-1a1e2756})
# 18 Métricas scripts

[comment]: # ({/1a1e2756-1a1e2756})

[comment]: # ({4a773286-cb89bc38})
### Descripción general

Las métricas de secuencia de comandos se pueden utilizar para recopilar datos ejecutando un código JavaScript definido por el usuario con la capacidad de recuperar datos a través de HTTP/HTTPS. 
Además del script, se puede especificar una lista opcional de parámetros 
(pares de nombre y valor) y el tiempo de espera.

Este tipo de métrica puede resultar útil en escenarios de recopilación de datos que requieren
múltiples pasos o lógica compleja. Como ejemplo, una métrica de secuencia de comandos puede ser
configurada para realizar una llamada HTTP y luego procesar los datos recibidos en el
primer paso de alguna manera y pasar el valor transformado a la segunda llamada HTTP.

Las métricas de script son procesadas por el servidor Zabbix o los sondeadores proxy.

[comment]: # ({/4a773286-cb89bc38})

[comment]: # ({dd1b72c9-7ed55e87})
### Configuración

En el campo *Tipo* del [formulario de configuración de
métricas](/manual/config/items/item) seleccione Script y luego complete los campos requeridos.

![script\_item.png](../../../../../assets/en/manual/config/items/itemtypes/script_item.png)

Todos los campos de entrada obligatorios están marcados con un asterisco rojo.

Los campos que requieren información específica para las métricas Script son:

|Campo|Descripción|
|--|--------|
|Clave|Ingrese una clave única que se utilizará para identificar la métrica.|
|Parámetros|Especifique las variables que se pasarán al script como pares de atributo y valor.<br>[Macros integradas](/manual/config/macros) {HOST.CONN}, {HOST.DNS}, {HOST .HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} y [macros de usuario](/manual/config/macros/user_macros) son compatibles.|
|Script|Ingrese el código JavaScript en el bloque que aparece al hacer clic en el campo de parámetro (o en el botón ver/editar al lado). Este código debe proporcionar la lógica para devolver el valor de la métrica.<br>El código tiene acceso a todos los parámetros, puede realizar solicitudes HTTP GET, POST, PUT y DELETE y tiene control sobre los encabezados HTTP y el cuerpo de la solicitud.<br>Ver también : [Objetos JavaScript adicionales](/manual/config/items/preprocessing/javascript/javascript_objects), [Guía de JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide).|
|Tiempo de espera|Tiempo de espera de ejecución de JavaScript (1-60 s, predeterminado 3 s); excederlo devolverá un error.<br>Se admiten sufijos de tiempo, p. 30s, 1m.<br>Dependiendo del script, el tiempo de espera puede tardar más en activarse. |

[comment]: # ({/dd1b72c9-7ed55e87})

[comment]: # ({b41637d2-4c860844})
### Ejemplos

[comment]: # ({/b41637d2-4c860844})

[comment]: # ({2f86a97a-9c6c78ee})
##### Recopilación de datos sencilla

Recopile el contenido de *https://www.example.com/release\_notes*:

- Crear una métrica de tipo "Script".
- En el campo *Script*, ingrese:

```javascript
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
```

[comment]: # ({/2f86a97a-9c6c78ee})

[comment]: # ({ccceecb6-0b145a06})
##### Recopilación de datos con parámetros.

Recopile el contenido de una página específica y utilice parámetros:

- Crea una métrica de tipo "Script" y dos parámetros:
    - **url: {$DOMAIN}** (la macro de usuario {$DOMAIN} debe estar definida, preferiblemente a nivel de equipo)
    - **subpage: /release_notes**

![](../../../../../assets/en/manual/config/items/itemtypes/script_example1.png){width=600}

- En el campo *Script*, ingrese:

```javascript
var obj = JSON.parse(valor);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
```

[comment]: # ({/ccceecb6-0b145a06})

[comment]: # ({d5553e63-18a089f4})
##### Múltiples solicitudes HTTP

Recopile el contenido de *https://www.example.com* y
*https://www.example.com/release\_notes*:

- Crear una métrica de tipo "Script".
- En el campo *Script*, ingrese:

```javascript
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
```

[comment]: # ({/d5553e63-18a089f4})

[comment]: # ({0a711007-d837bcdd})
##### Registro de datos

Añade la entrada "Log test" al registro del servidor Zabbix y recibe el valor "1" de la métrica como retorno:

-   Cree una métrica de tipo "Script".\
-   En el campo *Script*, introduce el siguiente código:

``` {.java}
Zabbix.log(3, 'Log test');
return 1;
```

[comment]: # ({/0a711007-d837bcdd})
