{
  "id": 10484792,
  "title": "Build a Grafana Geomap of Traffic and Threat Score",
  "url": "https://urgent.news/2026/09/28/build-a-grafana-geomap-of-traffic-and-threat-score",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-28T16:31:11.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/abdullah_afzal/build-a-grafana-geomap-of-traffic-and-threat-score-2f7e"
  },
  "original_language": "en",
  "account": "Building a Grafana Geomap to visualize traffic and threat scores can be achieved in about an hour, with the actual map creation taking minimal time. The built-in Geomap panel does not require any complex setup; it simply requires enriching log lines with country codes and risk scores.\n\nThe tutorial you may have found online is outdated, as the Worldmap plugin it referenced was archived in January 2025 and removed from Grafana 12 due to AngularJS dependency issues. Additionally, Promtail was removed in Loki 3.7.3, so using Alloy instead is recommended.\n\nTo get the necessary data into your log lines, you have two options. Option A involves enriching logs at the edge using an Nginx module that reads MMDB files, exposing $ip_* variables without incurring per-request costs. Choose a reliable IP geolocation service and integrate it with your Nginx configuration.\n\nOnce the log lines include the required fields, set up a pipeline consisting of Nginx, Alloy, Loki, and Grafana. Nginx tails the log, Loki stores it, and Grafana queries the data. The resulting Geomap panel will show countries colored by the highest threat score seen from that country, with circle markers sized by request volume. A country represented by a large, green area is safe, while small, red areas require attention.",
  "summary": "A Grafana Geomap showing traffic by country and coloured by threat score takes about an hour to build. Almost none of that hour is the map. The map is a built-in panel and it does what you'd expect. The work is upstream: getting a country code and a risk score onto every log line, cheaply enough that you're not paying per request for the privilege. And if you search for this, you'll find a pile…",
  "key_points": [
    "Grafana Geomap built in under an hour",
    "Worldmap plugin archived, use Alloy instead",
    "Color-coded countries by threat score"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}