Skip to main content

Bewährte Methoden zum Konfigurieren von API-Ratenlimits

Ein datengesteuerter Ansatz für API-Rate-Grenzwerte schützt Ihre GitHub Enterprise Server Instanz vor übermäßiger Nutzung, ohne kritische Integrationen zu unterbrechen.

Wer kann dieses Feature verwenden?

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

Informationen zu einem datengesteuerten Ansatz zu Ratenlimits

Ohne Geschwindigkeitsbeschränkungen kann eine einzelne CI-Integration, die zehntausende Anforderungen pro Stunde macht, Ihre gesamte Instanz für jeden Benutzer verlangsamen. Das Festlegen von Grenzwerten kann jedoch zu aggressiv die Integrationen, auf die Ihre Teams angewiesen ist, unterbrechen. Ein datengesteuerter Ansatz hilft Ihnen dabei, das richtige Gleichgewicht zu finden– beginnen Sie mit der Beobachtung realer Nutzungsmuster und erzwingen dann schrittweise Grenzwerte basierend auf den von Ihnen gesammelten Daten.

Der Ansatz folgt den folgenden Phasen:

  1.        **Beobachten**: Aktivieren Sie die Protokollweiterleitung und analysieren Sie API-Datenverkehrsmuster.
    
  2.        **Baseline**: Aktivieren Sie die Ratenbegrenzungen mit einem hohen Anfangswert, um mit der Datensammlung für Ratenbegrenzungen zu beginnen.
    
  3.        **Verfeinern**: Passen Sie Grenzwerte basierend auf beobachteter Nutzung an und kommunizieren Sie mit betroffenen Teams.
    
  4.        **Beibehalten**: Überwachen und Anpassen von Grenzwerten im Laufe der Zeit.
    

Informationen zum Aktivieren von Rate-Limits über die Verwaltungskonsole finden Sie unter Configuring rate limits (Konfigurieren von Ratenbegrenzungen).

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie folgendes haben:

  • Administrationszugriff auf die Verwaltungskonsole
  • Zugriff auf die Konfiguration der Protokollweiterleitung
  • Die Möglichkeit, zentralisierte Protokolle zu analysieren
  • Ein Verständnis der API-Nutzungsmuster und kritischen Integrationen Ihrer Organisation

Schritt 1: Aktivieren der Protokollweiterleitung

Verwenden Sie die Protokollweiterleitung, um API-Anforderungsprotokolle für die Überwachung und Analyse zu zentralisieren. Weitere Informationen findest du unter Protokollweiterleitung.

Konzentrieren Sie sich beim Analysieren weitergeleiteter Protokolle auf diese Schlüsselfelder:

FeldBeschreibung
TimestampVerfolgt, wann Anforderungen gestellt werden
user / gh.actor.loginIdentifiziert den Benutzer oder die Integration, die Anfragen stellt.
path_info / gh.request.api.routeDie API-Route wird abgerufen
statusHTTP-Antwortcode (z. B. 200 für Erfolg oder 429 bei eingeschränkter Rate)
user_agentIdentifiziert den Client oder die Integration, die die Anforderung sendet.

Analysieren Sie vor dem Aktivieren von Zinslimits Ihre allgemeinen Nutzungstrends, um einen Basisplan festzulegen:

  •         **Identifizieren der wichtigsten Verbraucher.** Suchen Sie Benutzer oder Integrationen, die die höchste Anzahl von Anforderungen machen.
    
  •         **Überprüfen Sie Endpunkte mit hoher Nachfrage.** Heben Sie API-Routen (`path_info`) hervor, die den meisten Datenverkehr erhalten und von der Optimierung profitieren können.
    
  •         **Erkennen Sie ineffiziente Muster.** Suchen Sie nach Anzeichen für eine hohe oder ineffiziente Nutzung, z. B. häufige Abfragen ohne Zwischenspeichern oder redundante Anforderungen.
    

Diese Basisdaten helfen Ihnen dabei, Ratengrenzwerte festzulegen, die auf tatsächlicher Nutzung basieren statt auf Schätzungen.

Schritt 3: Aktivieren von Ratenlimits mit einem hohen Anfangswert

Wenn Sie bereit sind, Ratelimits zu aktivieren, beginnen Sie mit einem hohen Schwellenwert, damit Sie zusätzliche Daten sammeln können, ohne vorhandene Workflows zu unterbrechen.

  1. Legen Sie in der Verwaltungskonsole den Grenzwert für die primäre API-Anforderungsrate auf einen hohen Wert fest, z. B. 25.000 Anforderungen pro Stunde. Weitere Informationen findest du unter Configuring rate limits (Konfigurieren von Ratenbegrenzungen).

  2. Überwachen Sie nach dem Aktivieren von Rate Limits die Felder, die in den weitergeleiteten Protokollen angezeigt werden:

    FeldBeschreibung
    gh.rate_limit.primary.maxMaximal zulässige Anforderungen
    gh.rate_limit.primary.remainingVerbleibende Anforderungen im aktuellen Zeitraum
    gh.rate_limit.primary.usedBereits im Zeitraum vorgenommene Anfragen
    gh.rate_limit.primary.resetUnix-Zeitstempel, wenn der Zinsgrenzwert zurückgesetzt wird

Schritt 4: Einschränken von Grenzwerten und Beheben der hohen Nutzung

Verwenden Sie die Daten aus den gh.rate_limit Feldern, um fundierte Entscheidungen zu treffen:

  •         **Identifizieren Sie Benutzer, die sich dem Grenzwert nähern.** Suchen Sie Benutzer oder Integrationen, die sich häufig dem Schwellenwert nähern oder überschreiten.
    
  •         **Ermitteln Sie geeignete Grenzwerte.** Legen Sie Höchstwerte basierend auf beobachteten Nutzungstrends und nicht auf beliebigen Werten fest.
    
  •         **Kommunizieren Sie mit betroffenen Teams.** Arbeiten Sie mit Teams zusammen, um ihre API-Nutzung durch Techniken wie Anforderungsbatchierung, Antwortzwischenspeicherung und bedingte Anforderungen zu optimieren.
    

Schritt 5: Grenzen reduzieren und über die Zeit aufrechterhalten

Sobald Sie ein klares Bild der API-Nutzung haben, verringern Sie schrittweise den Satzgrenzwert, um die Kapazität und die tatsächlichen Nutzungsmuster Ihrer Instanz anzupassen. Überwachen Sie nach jeder Anpassung auf unbeabsichtigte Unterbrechungen.

Wenn Sie Grenzwerte verfeinern, arbeiten Sie mit Teams zusammen, deren Integrationen betroffen sind. Techniken wie Anforderungsbatchierung, Antwortzwischenspeicherung und bedingte Anforderungen können Teams dabei helfen, ihre API-Nutzung zu reduzieren. Sie können bestimmte Benutzer auch von Den ratenbeschränkungen ausnehmen, indem Sie das ghe-config Hilfsprogramm verwenden. Weitere Informationen findest du unter Befehlszeilenwerkzeuge.

Überprüfen Sie ihre Ratelimitdaten regelmäßig, da sich Nutzungsmuster ändern, wenn neue Integrationen hinzugefügt werden und Workflows weiterentwickelt werden.

Zusätzliche Überlegungen

  •         **GraphQL-API-Grenzwerte.** Die GraphQL-API verfügt über einen separaten Satzgrenzwert (Standard: 5.000 Punkte pro Stunde), die nicht über die Ausnahmeliste umgangen werden können. Weitere Informationen findest du unter [AUTOTITLE](/graphql/overview/rate-limits-and-node-limits-for-the-graphql-api).
    
  •         **Sekundäre Zinslimits.** Sie können auch Sekundärratenlimits aktivieren, um das allgemeine Dienstniveau zu schützen. Weitere Informationen findest du unter [AUTOTITLE](/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits#enabling-secondary-rate-limits).
    

Weiterführende Lektüre

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