Controla el uso de tu clave antes de alcanzar un límite
Vigilar las cabeceras de cuota sobre la marcha te indica cuándo te acercas a un límite, mucho antes de que se rechace realmente una solicitud.
Un registro de accesos lleno de direcciones IP esconde información geográfica real, pero solo cuando cada dirección se ha resuelto en coordenadas que una herramienta de mapas pueda representar.
Extrae primero las direcciones IP únicas de tu archivo de registro, en lugar de consultar cada línea del registro por separado, ya que la misma dirección de visitante suele aparecer muchas veces a lo largo de una sesión y no hay motivo para pagar por la misma consulta repetidamente.
sort logfile.txt | awk '{print $1}' | sort -u > unique_ips.txtEnvía la lista de direcciones únicas como un array POST en bloque a /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}
]
}Empareja cada lat y lon devueltos con el número de apariciones de esa dirección original en tu registro, de modo que un visitante que aparece cien veces en el registro aporte proporcionalmente más peso que uno que aparece una sola vez. Pasa la lista resultante de puntos de coordenadas ponderados a la herramienta de mapas o gráficos que uses para generar el mapa de calor.
Si un mapa de calor preciso punto por punto es más detalle del que necesitas, agrupar por country_code en lugar de por coordenadas sin procesar produce una vista más sencilla de tipo coroplético, una cifra por país en lugar de una nube dispersa de puntos. Usa exactamente la misma consulta en bloque, solo que agrupada de otra forma una vez que llegan los resultados, así que construir ambas vistas a partir de los mismos datos resueltos no cuesta nada extra.
Una entrada con found: false, como el tercer resultado de arriba, simplemente debe excluirse del mapa de calor en lugar de representarse en una ubicación por defecto, ya que incluirla agruparía de forma engañosa el tráfico no resuelto en algún punto del mapa que no tiene nada que ver con su procedencia real.
No te saltes el filtrado del tráfico que claramente no procede de visitantes, como las comprobaciones de estado internas o los servicios de monitorización que acceden constantemente a tu servidor desde una dirección fija, antes de crear la lista de direcciones únicas. Un servicio de monitorización que consulta cada minuto puede acumular un número desproporcionado de líneas en el registro que no tiene nada que ver con la geografía real de los visitantes, y aunque la eliminación de duplicados ya lo limita a un solo punto resuelto, ese punto puede seguir dominando visualmente el mapa de calor de forma desproporcionada respecto a cualquier patrón de tráfico real que represente.
El campo org de una dirección resuelta suele revelar cuándo el tráfico procede de un centro de datos o de un rango de hosting en la nube en lugar de una conexión residencial o móvil, lo que es una señal razonable para filtrar el tráfico de bots o scrapers antes de que distorsione un mapa de calor que pretende representar las ubicaciones reales de los visitantes.
Resolver las direcciones únicas en lugar de cada línea del registro es lo que mantiene esto asequible, ya que el coste es una solicitud por dirección única, no una por línea del registro. Un registro con un millón de líneas pero solo unos pocos miles de direcciones de visitantes únicas cuesta unos pocos miles de solicitudes, no un millón, algo perfectamente asumible con crédito prepago o con un paquete Unlimited para un sitio grande, y a menudo dentro de la cuota gratuita para uno más pequeño. Vigilar la cabecera X-Quota-Used durante un trabajo por lotes grande es una forma sencilla de confirmar que el uso va según lo previsto antes de que termine el trabajo.
Eliminar duplicados antes de resolver es la palanca más importante para mantener asequible un mapa de calor basado en registros. La documentación de consulta de IPv4 describe por completo el formato de solicitud en bloque.