Skip to main content

Procedimientos recomendados para configurar límites de velocidad de API

Un enfoque basado en datos para los límites de uso de la API protege la instancia de GitHub Enterprise Server frente al uso abusivo sin interrumpir las integraciones críticas.

¿Quién puede utilizar esta característica?

Site administrators can configure rate limits for a GitHub Enterprise Server instance.

Acerca de un enfoque controlado por datos para los límites de velocidad

Sin límites de velocidad, una única integración de CI que realiza decenas de miles de solicitudes por hora puede ralentizar toda la instancia para cada usuario. Pero establecer límites demasiado agresivos puede interrumpir las integraciones en las que se basan los equipos. Un enfoque controlado por datos le ayuda a encontrar el equilibrio adecuado, empiece por observar patrones de uso reales y, a continuación, aplicar gradualmente límites en función de los datos que recopile.

El enfoque sigue estas fases:

  1.        **Observe**: Habilite el reenvío de registros y analice los patrones de tráfico de API.
    
  2.        **Línea base**: habilite los límites de velocidad con un valor inicial alto para empezar a recopilar datos de límite de velocidad.
    
  3.        **Refinar**: ajuste los límites en función del uso observado y se comunique con los equipos afectados.
    
  4.        **Mantener**: supervise y ajuste continuamente los límites a lo largo del tiempo.
    

Para obtener información sobre cómo habilitar los límites de velocidad a través de Consola de administración, vea Configuración de los límites de frecuencia.

Prerrequisitos

Antes de comenzar, asegúrese de que tiene:

  • Acceso de administrador a Consola de administración
  • Acceso a la configuración de reenvío de registros
  • La capacidad de analizar registros centralizados
  • Descripción de los patrones de uso de api de la organización y las integraciones críticas

Paso 1: Habilitación del reenvío de registros

Utilice el reenvío de registros para centralizar los registros de solicitudes de API para su supervisión y análisis. Para obtener más información, vea Reenvío de logs.

Al analizar los registros reenviados, céntrese en estos campos clave:

CampoDescripción
TimestampRealiza un seguimiento de cuándo se realizan las solicitudes
user / gh.actor.loginIdentifica el usuario o la integración que realiza solicitudes
path_info / gh.request.api.routeRuta de API a la que se accede
statusCódigo de respuesta HTTP (por ejemplo, 200 para éxito o 429 cuando la tasa está limitada)
user_agentIdentifica el cliente o la integración que envía la solicitud.

Antes de habilitar los límites de frecuencia, analice las tendencias de uso generales para establecer una línea base:

  •         **Identifique a los principales consumidores.** Busque usuarios o integraciones que realicen el mayor número de solicitudes.
    
  •         **Revise los puntos de conexión de alta demanda.** Resalte las rutas de API (`path_info`) que reciben la mayor parte del tráfico y que pueden beneficiarse de la optimización.
    
  •         **Detecte patrones ineficaces.** Busque signos de uso intensivo o ineficaz, como sondeo frecuente sin almacenamiento en caché o solicitudes redundantes.
    

Estos datos de referencia le ayudarán a establecer los límites de tasa basados en el uso real en lugar de las estimaciones.

Paso 3: Habilitación de los límites de velocidad con un valor inicial alto

Cuando esté listo para habilitar los límites de velocidad, comience con un umbral alto para poder recopilar datos adicionales sin interrumpir los flujos de trabajo existentes.

  1. En Consola de administración, establezca el límite de velocidad de API principal en un valor alto como 25 000 solicitudes por hora. Para obtener más información, vea Configuración de los límites de frecuencia.

  2. Después de habilitar los límites de velocidad, supervise los campos que aparecen en los gh.rate_limit registros reenviados:

    CampoDescripción
    gh.rate_limit.primary.maxNúmero máximo de solicitudes permitidas
    gh.rate_limit.primary.remainingSolicitudes restantes en el período actual
    gh.rate_limit.primary.usedSolicitudes ya realizadas en el período
    gh.rate_limit.primary.resetMarca de tiempo de Unix cuando se restablece el período de límite de velocidad

Paso 4: Refinar los límites y abordar el uso intensivo

Use los datos de los gh.rate_limit campos para tomar decisiones fundamentadas:

  •         **Identifique a los usuarios que están cerca del límite.** Busque usuarios o integraciones que se acerquen o superen con frecuencia el umbral.
    
  •         **Determine los límites adecuados.** Establezca los límites de frecuencia en función de las tendencias de uso observadas en lugar de valores arbitrarios.
    
  •         **Comunicarse con los equipos afectados.** Trabaje con equipos para optimizar su uso de API a través de técnicas como el procesamiento por lotes de solicitudes, el almacenamiento en caché de respuestas y las solicitudes condicionales.
    

Paso 5: Reducir los límites y mantener a lo largo del tiempo

Una vez que tenga una imagen clara del uso de la API, reduzca gradualmente el límite de velocidad para alinearse con la capacidad de la instancia y los patrones de uso reales. Supervise si hay interrupciones no deseadas después de cada ajuste.

A medida que refina los límites, trabaje con equipos cuyas integraciones se vean afectadas. Técnicas como el procesamiento por lotes de solicitudes, el almacenamiento en caché de respuestas y las solicitudes condicionales pueden ayudar a los equipos a reducir el uso de la API. También puede excluir a usuarios específicos de los límites de frecuencia mediante la ghe-config utilidad . Para obtener más información, vea Utilidades de la línea de comandos.

Revise periódicamente los datos de límite de velocidad, ya que los patrones de uso cambian a medida que se agregan nuevas integraciones y los flujos de trabajo evolucionan.

Consideraciones adicionales

  •         **Límites de GraphQL API.** GraphQL API tiene un límite de velocidad independiente (valor predeterminado: 5000 puntos por hora) que no se puede omitir a través de la lista de exenciones. Para obtener más información, vea [AUTOTITLE](/graphql/overview/rate-limits-and-node-limits-for-the-graphql-api).
    
  •         **Límites de velocidad secundarios.** También puede habilitar los límites de velocidad secundarios para proteger el nivel general de servicio. Para obtener más información, vea [AUTOTITLE](/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits#enabling-secondary-rate-limits).
    

Lectura adicional

  •         [AUTOTITLE](/rest/overview/rate-limits-for-the-rest-api)