<!-- review: finished -->

<a id="custom-metrics-config"></a>

# Configuración de Métricas Personalizadas

Angie puede recopilar métricas numéricas personalizadas en memoria compartida y exponerlas a través
de la [API de estadísticas](https://es.angie.software//angie/docs/configuration/modules/http/http_api.md#metrics) en tiempo real en
`/status/http/metric_zones/`. Esto lo proporciona el
módulo [Metric](https://es.angie.software//angie/docs/configuration/modules/http/http_metric.md#http-metric).

<a id="configuration-steps-1"></a>

## Pasos de Configuración

1. Defina una zona de métricas en el bloque `http`:
   - [metric_zone](https://es.angie.software//angie/docs/configuration/modules/http/http_metric.md#metric-zone) crea una zona con un modo de métrica única.
   - [metric_complex_zone](https://es.angie.software//angie/docs/configuration/modules/http/http_metric.md#metric-complex-zone) crea una zona con múltiples métricas nombradas.
2. Actualice las métricas en el procesamiento de solicitudes con la directiva [metric](https://es.angie.software//angie/docs/configuration/modules/http/http_metric.md#id3).
   Use un par `clave=valor` (ambos son [valores complejos](https://es.angie.software//angie/docs/configuration/configfile.md#syntax)), y
   elija la etapa de actualización con `on=` (`request`, `response`,
   o `end`).
3. Exponga la API con una `location`:
   ```nginx
   location /status/ {
       api /status/http/metric_zones/;
   }
   ```

<a id="example"></a>

## Ejemplo

Contar solicitudes por host y exponer las métricas en la API:

```nginx
http {
    metric_zone requests:128k count;

    server {
        listen 80;

        location / {
            metric requests $host=1;
        }

        location /status/ {
            api /status/http/metric_zones/;
        }
    }
}
```

<a id="notes"></a>

## Notas

- Si `expire=on` está configurado en la zona y la memoria compartida está llena, las
  entradas usadas menos recientemente caducan. Si `expire=off`, las nuevas actualizaciones
  se descartan y el contador `discarded` aumenta.
- Si `discard_key` está configurado, las métricas de las entradas caducadas se agregan
  bajo esa clave en la salida de la API.
- Las claves y valores están limitados a 255 bytes; las claves más largas se truncan en la API.
- Un valor vacío se trata como `0`, y un valor no vacío sin un
  número inicial se trata como `1`.
