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_simpleName | responseTime | status | timestamp | transaction_type | user_latitude | user_longitude |
|---|---|---|---|---|---|---|
| UserTransaction | 180 | complete | 2025-09-23T10:15:22Z | purchase | 51.5074 | -0.1278 |
| UserTransaction | 220 | complete | 2025-09-23T10:15:23Z | checkout | 40.7128 | -74.006 |
| UserTransaction | 250 | complete | 2025-09-23T10:15:24Z | add-to-cart | 34.0522 | -118.2437 |
| UserTransaction | 190 | complete | 2025-09-23T10:15:25Z | browse | 37.7749 | -122.4194 |
| UserTransaction | 210 | complete | 2025-09-23T10:15:26Z | search | 41.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:
@rawstring = /UserTransaction/
| parseJson(field=@rawstring)
| geohash(lat=user_latitude, lon=user_longitude, as=geohash)
| groupBy(geohash, function=avg(responseTime, as=magnitude))Query breakdown:
Filter for events that contain
UserTransactionin the raw string field using a regular expression match.Use
parseJson(field=@rawstring)to extract JSON fields from the raw event string into individual fields that can be queried.Use the
geohash()function withas=geohashto convert latitude and longitude coordinates into geohash strings. This groups nearby geographic points into the same hash bucket, enabling efficient geographic clustering.Use
groupBy(geohash, ...)to aggregate all transactions in each geographic cluster and calculate the average response time withavg(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.
![]() |
Figure 258. Geohash Performance Clustering
Configuration:
From the
Searchpage, type your query in the Query Editor → clickChoose in the
Widget SelectorClick the style icon : the side panel shows most settings already configured by default based on the query result.
In Center, adjust the zoom level to balance between global overview and regional detail. Higher zoom levels show more granular geohash clusters.
In Marks, set the magnitude mode to
Sizeto represent cluster performance with marker size. Configure Min point size and Max point size to make high-response-time areas immediately visible.Alternatively, use magnitude mode
Opacityto represent performance through marker transparency, adjusting min opacity and max opacity to emphasize performance differences.In Projection, set the type to
Albers USAfor analyzing US-based user transactions, which provides an equal-area conic projection optimized for visualizing United States data. Alternatively, useMercatorfor global data orOrthographicfor a hemisphere view.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.
