Geohash Performance Clustering

In this scenario, product teams can analyze user experience by region for:

  • Performance hotspots identification

  • Geographic user experience patterns

  • Regional optimization opportunities

Sample input data. Here is example input data for this scenario:

event_simpleNameresponseTimestatustimestamptransaction_typeuser_latitudeuser_longitude
UserTransaction180complete2025-09-23T10:15:22Zpurchase51.5074-0.1278
UserTransaction220complete2025-09-23T10:15:23Zcheckout40.7128-74.006
UserTransaction250complete2025-09-23T10:15:24Zadd-to-cart34.0522-118.2437
UserTransaction190complete2025-09-23T10:15:25Zbrowse37.7749-122.4194
UserTransaction210complete2025-09-23T10:15:26Zsearch41.8781-87.6298

Query. You do not always have to use the worldMap() function in order to create a World Map widget. You can also provide data that conforms to the input format, as in the following query:

logscale Syntax
@rawstring = /UserTransaction/
| parseJson(field=@rawstring)
| geohash(lat=user_latitude, lon=user_longitude, as=geohash)
| groupBy(geohash, function=avg(responseTime, as=magnitude))

Query breakdown:

  1. Filter for events that contain UserTransaction in the raw string field using a regular expression match.

  2. Use parseJson(field=@rawstring) to extract JSON fields from the raw event string into individual fields that can be queried.

  3. Use the geohash() function with as=geohash to convert latitude and longitude coordinates into geohash strings. This groups nearby geographic points into the same hash bucket, enabling efficient geographic clustering.

  4. Use groupBy(geohash, ...) to aggregate all transactions in each geographic cluster and calculate the average response time with avg(responseTime, as=magnitude).

Why use geohash: You can use the geohash() function to achieve the same bucketing of points as the worldMap() function does internally. If you do not use geohashing with large datasets, you risk plotting too many individual points, making the widget very slow and difficult to interpret.

Visualization: The map displays markers at geohashed locations representing clustered geographic areas of user transactions. Using the Albers USA projection, the map focuses on United States regions. Each marker represents aggregated transactions within a geohash cluster, with the average response time calculated for that area. Hover over markers to see the magnitude values (average response times) for each cluster.

Screenshot showing a World Map widget displaying UserTransaction events as markers at geohashed locations across the United States using Albers USA projection, with each marker representing aggregated transaction clusters and their average response times, and Format World Map panel visible on the right showing Center, Marks, and Projection configuration options

Figure 258. Geohash Performance Clustering


Configuration:

  1. From the Search page, type your query in the Query Editor → click Run

  2. Choose World Map in the Widget Selector

  3. Click the style icon : the side panel shows most settings already configured by default based on the query result.

  4. In Center, adjust the zoom level to balance between global overview and regional detail. Higher zoom levels show more granular geohash clusters.

  5. In Marks, set the magnitude mode to Size to represent cluster performance with marker size. Configure Min point size and Max point size to make high-response-time areas immediately visible.

  6. Alternatively, use magnitude mode Opacity to represent performance through marker transparency, adjusting min opacity and max opacity to emphasize performance differences.

  7. In Projection, set the type to Albers USA for analyzing US-based user transactions, which provides an equal-area conic projection optimized for visualizing United States data. Alternatively, use Mercator for global data or Orthographic for a hemisphere view.

  8. Add a descriptive Title such as User Transaction Performance by Geographic Region.

You can further customize this widget by setting more properties, see World Map Property Reference.