Surveillez l'utilisation de votre clé avant d'atteindre une limite
Surveiller vos en-têtes de quota au fil de l'eau vous indique quand une limite approche, bien avant qu'une requête ne soit effectivement refusée.
Un journal d'accès rempli d'adresses IP recèle de véritables informations géographiques, mais seulement une fois que chaque adresse a été résolue en coordonnées qu'un outil de cartographie peut effectivement tracer.
Extrayez d'abord les adresses IP uniques de votre fichier journal, plutôt que de rechercher chaque ligne individuellement, puisque la même adresse de visiteur apparaît souvent de nombreuses fois au cours d'une session et qu'il n'y a aucune raison de payer plusieurs fois la même recherche.
sort logfile.txt | awk '{print $1}' | sort -u > unique_ips.txtEnvoyez la liste des adresses uniques sous forme de tableau en POST groupé à /v1/ip.
POST /v1/ip
Content-Type: application/json
["203.0.113.10", "198.51.100.25", "192.0.2.44"]{
"status": "ok",
"results": [
{"ip": "203.0.113.10", "version": 4, "found": true, "country": "Germany", "country_code": "DE", "region": "Berlin", "city": "Berlin", "postcode": "10115", "lat": 52.5300, "lon": 13.3800, "timezone": "Europe/Berlin", "asn": 1111, "org": "Example ISP"},
{"ip": "198.51.100.25", "version": 4, "found": true, "country": "Spain", "country_code": "ES", "region": "Madrid", "city": "Madrid", "postcode": "28001", "lat": 40.4168, "lon": -3.7038, "timezone": "Europe/Madrid", "asn": 2222, "org": "Example Networks"},
{"ip": "192.0.2.44", "version": 4, "found": false}
]
}Associez chaque lat et lon renvoyés au nombre d'occurrences de l'adresse d'origine dans votre journal, afin qu'un visiteur apparaissant cent fois dans le journal pèse proportionnellement plus qu'un visiteur apparaissant une seule fois. Injectez la liste de points pondérés ainsi obtenue dans l'outil de cartographie ou de graphiques que vous utilisez pour afficher la carte de chaleur.
Si une carte de chaleur point par point est plus détaillée que nécessaire, agréger par country_code plutôt que par coordonnées brutes produit une vue plus simple de type choroplèthe, avec un chiffre par pays plutôt qu'un nuage de points dispersés. Cela utilise exactement la même recherche en masse, simplement regroupée différemment une fois les résultats reçus : construire les deux vues à partir des mêmes données résolues ne coûte donc rien de plus.
Une entrée avec found: false, comme le troisième résultat ci-dessus, doit simplement être exclue de la carte de chaleur plutôt que tracée à un emplacement par défaut, car l'inclure regrouperait de façon trompeuse le trafic non résolu à un endroit de la carte qui n'a rien à voir avec sa provenance réelle.
Ne négligez pas de filtrer le trafic qui ne provient manifestement pas de visiteurs, comme les contrôles de santé internes ou les services de surveillance qui interrogent votre serveur en permanence depuis une adresse fixe, avant de constituer la liste des adresses uniques. Un service de surveillance qui interroge le serveur toutes les minutes peut accumuler un nombre disproportionné de lignes de journal sans aucun rapport avec la géographie réelle des visiteurs, et même si le dédoublonnage le limite déjà à un seul point résolu, ce point peut encore dominer visuellement une carte de chaleur sans commune mesure avec le trafic réel qu'il représente.
Le champ org d'une adresse résolue révèle souvent que le trafic provient d'une plage de centre de données ou d'hébergement cloud plutôt que d'une connexion résidentielle ou mobile, ce qui constitue un signal raisonnable pour écarter le trafic de robots ou de scrapers avant qu'il ne fausse une carte de chaleur censée représenter la localisation réelle des visiteurs.
C'est le fait de résoudre les adresses uniques plutôt que chaque ligne du journal qui rend l'opération abordable, puisque le coût est d'une requête par adresse unique, et non par ligne de journal. Un journal d'un million de lignes, mais de quelques milliers d'adresses de visiteurs uniques seulement, coûte quelques milliers de requêtes, et non un million, ce qui reste tout à fait gérable avec du crédit prépayé ou un forfait Unlimited pour un grand site, et souvent dans le quota gratuit pour un site plus modeste. Surveiller l'en-tête X-Quota-Used pendant une grosse tâche par lots est un moyen simple de vérifier que la consommation évolue comme prévu avant la fin de la tâche.
Dédoublonner avant de résoudre est de loin le levier le plus efficace pour garder abordable une carte de chaleur construite à partir de journaux. La documentation de la recherche IPv4 décrit en détail le format des requêtes groupées.