Zum Inhalt springen

API 24/7 Monitoren - 15 Minuten Intervall - erlaubt?


Empfohlene Beiträge

Hallo zusammen,

 

ich würde gerne für mich selbst einen Prometheus exporter mit angeschlossenem Grafana Dashboard erstellen, dieser soll bestimmte Daten zu meinem eigenen Account via API Monitoring abgreift und anschließend darstellt. Die Daten an sich habe ich alle und es funktioniert auch schon recht gut. Nun zu meiner Frage:

 

  • Darf ich den Exporter 24/7 laufen lassen oder gilt dies als "Abuse" der API?
  • Welche Intevalle für den Aufruf der API sind dabei erlaubt? (15, 30, 45, 60 Minuten, 3, 6, 12, 24 Stunden)

 

Um Aufrufe zu sparen und nur in sinvollen Zeitabschnitten Daten abzurufen hat der exporter folgende Arbeitsweise:

  • beim Start (einmalig, bzw. aller mehrerer Wochen) -> initiales Abrufen der Daten incl. `last-modified` vom Account.
  • prüfen aller 15 Minuten, ob sich das `last_modified` an `https://api.guildwars2.com/v2/account?v=latest` bzgl. des letzten Aufrufes sich geändert hat
    •     hat sich geändert -> Abrufen aller Daten anhand verschiedener API-Aufrufe, anschließend wieder 15 Minuten warten
    •     es hat sich nicht geändert -> warte 15 Minuten
  • Statische Daten wie zum Beispiel Currencie beschreibungen (https://api.guildwars2.com/v2/currencies?ids=all) werden nur einmal pro Initialisierung geladen und lokal gecached

 

Das Angeschlossene Grafana Dashbord ruft hierbei nur den Prometheus auf und nicht die GW2-API.

 

In den ToS, FAQ und Content Terms of Use von https://wiki.guildwars2.com/wiki/API:Terms_of_Use habe ich leider keine konkrete Aussage dazu gefunden, daher wollte ich noch einmal nach fragen.

 

Über eine Antwort würde ich mich sehr freuen.

 

MfG Zero Enna

Bearbeitet von Zero Enna.3482
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier wird Dir niemand offizielles antworten.

 

Aber wenn du Dir mal die Antwort vom Server anschaust, dann siehst Du, dass er ein Rate Limit im Feld X-Rate-Limit-Limit übermittelt:

 

Zitat

D:\Tools>wget -SO- -T 5 -t 1 https://api.guildwars2.com/v2/wvw
--2022-04-02 20:23:12-- https://api.guildwars2.com/v2/wvw
Resolving api.guildwars2.com (api.guildwars2.com)... 3.125.55.137, 3.127.216.209
Connecting to api.guildwars2.com (api.guildwars2.com)|3.125.55.137|:443... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Sat, 02 Apr 2022 18:23:12 GMT
  Content-Type: application/json; charset=utf-8
  Content-Length: 71
  Connection: keep-alive
  Server: Quaggans

 


  X-Rate-Limit-Limit: 600

 

 

  X-Content-Type-Options: nosniff
  Access-Control-Allow-Origin: *
  X-Powered-By: ARR/2.5
  X-Frame-Options: SAMEORIGIN
  X-Content-Type-Options: nosniff
  X-XSS-Protection: 1; mode=block
  Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Length: 71 [application/json]

 

Das Feld enthält in der Regel das Aufruflimit pro Stunde. Mit einem Call alle 15 Minuten bist Du also weit, weit davon entfernt.

 

Wobei ich persönlich halt auch denke, dass es bei vielen Daten egal ist wenn man sie eh nur einmal am Tag aktualisiert (oder nur alle paar Stunden). Z.B. Achievements - spielt ja normalerweise keine Rolle ob man sehen kann ob man ein Achievement am 05.04.2022 um 17:12 Uhr erledigt hat... oder ob man nur sieht "Okay, ich hab das am 5.4.2022 erledigt"). 

Genauso wie es sich bei einigen Sachen anbietet nur ganz gezielt bestimmte Dinge abzufragen -> wenn Du z.B. die Anzahl zerlegter Gegenstände tracken wolltest könntest Du nur genau das "Agent der Entropie"-Achievement abrufen und nicht gleich alle, etc.

 

Aber das sind halt so Optimierungen wo es stark auf Deinen Anwendungsfall ankommt. Generell würde ich sagen, dass Du bei Calls die maximal alle 15 Minuten laufen keine Probleme bekommen dürftest.

 

Ansonsten schau mal auf dem "GW2 Development Community" Discord vorbei. Da treibt sich das "Who is Who" der Leute rum, die Websites und Co zu GW2 entwickeln. Wenn, wird Dir da einer eine sinnvolle Antwort geben können.

Bearbeitet von Tiscan.8345
  • Thanks 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Account erstellen

Erstelle einen neuen Account für unsere Community. Es ist einfach!

Neuen Account erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...