<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/fpm.observability.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'fpm.status.php',
    1 => 'P&aacute;gina de estado',
    2 => 'P&aacute;gina de estado',
  ),
  'up' => 
  array (
    0 => 'fpm.observability.php',
    1 => 'Observabilidad',
  ),
  'prev' => 
  array (
    0 => 'fpm.observability.php',
    1 => 'Observabilidad',
  ),
  'next' => 
  array (
    0 => 'ref.fpm.php',
    1 => 'FPM Funciones',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/fpm/status.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="fpm.status" class="sect1">
 <h2 class="title">Página de estado</h2>

 <p class="simpara">
  Esta página proporciona información sobre la configuración y el contenido de la página de estado de FPM. Ver también
  <span class="function"><a href="function.fpm-get-status.php" class="function">fpm_get_status()</a></span>.
 </p>

 <div class="sect2" id="fpm.status.configuration">
  <h3 class="title">Configuración</h3>

  <p class="simpara">
   La página de estado de FPM puede activarse definiendo el parámetro
   <a href="install.fpm.configuration.php#pm.status-path" class="link">pm.status_path</a>
   en la configuración del grupo de FPM.
  </p>

  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    Por razones de seguridad, la página de estado de FPM debería limitarse a las peticiones internas o a las direcciones IP de clientes conocidas, ya que la página revela las URLs de las peticiones y la información sobre los recursos disponibles.
   </p>
  </div>

  <p class="simpara">
   Según la configuración del servidor web, puede ser necesario configurar el servidor web para
   permitir las peticiones directamente a esta ruta, omitiendo los scripts PHP. Un ejemplo de configuración
   para Apache con FPM escuchando en UDS y <code class="literal">pm.status_path</code> establecido en
   <code class="literal">/fpm-status</code>:
  </p>

  <div class="informalexample">
   <div class="example-contents">
    <div class="apache-confcode"><pre class="apache-confcode">&lt;LocationMatch &quot;/fpm-status&quot;&gt;
 Require local
 ProxyPass &quot;unix:/var/run/php-fpm.sock|fcgi://localhost/&quot;
&lt;/LocationMatch&gt;</pre>
</div>
   </div>

  </div>

  <p class="simpara">
   Tras el recarga o reinicio de FPM y del servidor web, la página de estado estará accesible desde
   el navegador (siempre que la petición provenga de una dirección IP autorizada si se ha configurado la restricción de IP).
  </p>
 </div>

 <div class="sect2" id="fpm.status.parameters">
  <h3 class="title">Parámetros de la petición</h3>

  <p class="simpara">
   El formato de la página de estado puede modificarse especificando uno de los siguientes parámetros de petición:
  </p>

  <ul class="simplelist">
   <li><code class="literal">html</code></li>
   <li><code class="literal">json</code></li>
   <li><code class="literal">openmetrics</code></li>
   <li><code class="literal">xml</code></li>
  </ul>

  <p class="simpara">
   Información adicional también puede devolverse utilizando el parámetro de petición <code class="literal">full</code>.
  </p>

  <p class="simpara">
   Ejemplo de URL de página de estado:
  </p>

  <ul class="simplelist">
   <li>
    <code class="literal">https://localhost/fpm-status</code>
    - Salida breve en el formato de texto por defecto
   </li>
   <li>
    <code class="literal">https://localhost/fpm-status?full</code>
    - Resultados completos en el formato de texto por defecto
   </li>
   <li>
    <code class="literal">https://localhost/fpm-status?json</code>
    - Resultado conciso en formato JSON
   </li>
   <li>
    <code class="literal">https://localhost/fpm-status?html&amp;full</code>
    - Resultados completos en formato HTML
   </li>
  </ul>
 </div>

 <div class="sect2" id="fpm.status.contents">
  <h3 class="title">Información mostrada</h3>

  <p class="simpara">
   Los valores de fecha y hora utilizan el formato de marca de tiempo Unix en las salidas JSON y XML,
   de lo contrario utilizan el formato resultante del siguiente ejemplo
   <code class="literal">&quot;03/Jun/2021:07:21:46 +0100&quot;</code>.
  </p>

  <table class="doctable table">
   <caption><strong>Información básica - Siempre mostrada en la página de estado</strong></caption>
   
    <thead>
     <tr>
      <th>Parámetro</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>pool</td>
      <td>El nombre del grupo de procesos FPM.</td>
     </tr>

     <tr>
      <td>proccess manager</td>
      <td>El tipo de gestor de procesos - estático, dinámico o bajo demanda.</td>
     </tr>

     <tr>
      <td>start time</td>
      <td>Fecha y hora del último inicio del grupo de procesos.</td>
     </tr>

     <tr>
      <td>start since</td>
      <td>Tiempo en segundos transcurrido desde el último inicio del grupo de procesos.</td>
     </tr>

     <tr>
      <td>accepted conn</td>
      <td>Número total de conexiones aceptadas.</td>
     </tr>

     <tr>
      <td>listen queue</td>
      <td>Número de peticiones (backlog) en espera de un proceso libre.</td>
     </tr>

     <tr>
      <td>max listen queue</td>
      <td>El número máximo de peticiones vistas en la cola en un momento dado.</td>
     </tr>

     <tr>
      <td>listen queue len</td>
      <td>Tamaño máximo permitido de la cola.</td>
     </tr>

     <tr>
      <td>idle processes</td>
      <td>Número de procesos actualmente inactivos (en espera de peticiones).</td>
     </tr>

     <tr>
      <td>active processes</td>
      <td>Número de procesos que actualmente están procesando peticiones.</td>
     </tr>

     <tr>
      <td>total processes</td>
      <td>Número total de procesos en curso.</td>
     </tr>

     <tr>
      <td>max active processes</td>
      <td>Número máximo de procesos activos simultáneamente.</td>
     </tr>

     <tr>
      <td>max children reached</td>
      <td>
       ¿Se ha alcanzado ya el número máximo de procesos? Si es así, el valor mostrado es
       mayor o igual a <code class="literal">1</code>, de lo contrario el valor mostrado es <code class="literal">0</code>.
      </td>
     </tr>

     <tr>
      <td>slow requests</td>
      <td>
       El número total de peticiones que han alcanzado el tiempo de espera configurado de
       <code class="literal">request_slowlog_timeout</code>.
      </td>
     </tr>

     <tr>
      <td>memory peak</td>
      <td>
       El pico de uso de memoria desde el inicio de FPM.
      </td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>Información por proceso - mostrada únicamente en modo de salida completa (<code class="literal">full</code>)</strong></caption>
   
    <thead>
     <tr>
      <th>Parámetro</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>pid</td>
      <td>El PID del sistema del proceso.</td>
     </tr>

     <tr>
      <td>state</td>
      <td>El estado del proceso - Idle, Running, ...</td>
     </tr>

     <tr>
      <td>start time</td>
      <td>La fecha/hora en que el proceso comenzó.</td>
     </tr>

     <tr>
      <td>start since</td>
      <td>El número de segundos transcurridos desde el inicio del proceso.</td>
     </tr>

     <tr>
      <td>requests</td>
      <td>El número total de peticiones servidas.</td>
     </tr>

     <tr>
      <td>request duration</td>
      <td>El tiempo total en microsegundos pasados procesando peticiones.</td>
     </tr>

     <tr>
      <td>request method</td>
      <td>El método HTTP de la última petición servida.</td>
     </tr>

     <tr>
      <td>request uri</td>
      <td>
       La URI de la última petición servida (tras el procesamiento por el servidor web, puede seguir siendo
       <code class="literal">/index.php</code> si se utiliza un patrón de redirección del controlador frontal).
      </td>
     </tr>

     <tr>
      <td>content length</td>
      <td>La longitud del cuerpo de la petición, en bytes, de la última petición.</td>
     </tr>

     <tr>
      <td>user</td>
      <td>El usuario HTTP (<code class="literal">PHP_AUTH_USER</code>) de la última petición.</td>
     </tr>

     <tr>
      <td>script</td>
      <td>
       La ruta completa del script ejecutado por la última petición. Será
       <code class="literal">&#039;-&#039;</code> si no es aplicable (por ejemplo, las peticiones de la página de estado).
      </td>
     </tr>

     <tr>
      <td>last request cpu</td>
      <td>
       El %cpu de la última petición. Será 0 si el proceso no está en reposo ya que el
       cálculo se realiza cuando el procesamiento de la petición ha finalizado.
       El valor puede superar el 100%, ya que el indicador mostrará el porcentaje total del tiempo de CPU utilizado en la última petición -
       tiene en cuenta los procesos en todos los núcleos, mientras que el 100% es para un solo núcleo.
      </td>
     </tr>

     <tr>
      <td>last request memory</td>
      <td>
       La cantidad máxima de memoria consumida por la última petición. Este valor será 0 si el proceso
       no está en reposo, ya que el cálculo se realiza cuando el procesamiento de la petición ha finalizado.
      </td>
     </tr>

    </tbody>
   
  </table>


  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Todos los valores son específicos del grupo y se reinician cuando se reinicia FPM.
   </span>
  </p></blockquote>

  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    El formato de salida OpenMetrics utiliza diferentes tipos de parámetros para adaptarse mejor al formato OpenMetrics.
    Los parámetros y las descripciones de sus valores están incluidos en la salida del formato OpenMetrics.
   </span>
  </p></blockquote>
 </div>

 <div class="sect2">
  <h3 class="title">Historial de cambios</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versión</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.1.0</td>
      <td>Se añadió el formato openmetrics.</td>
     </tr>

    </tbody>
   
  </table>

 </div>
</div><?php manual_footer($setup); ?>