Github Push Events
Compute at what times during a week are there most activities on Github based on push events.
Visualization: The heatmap displays GitHub push activity patterns across a weekly cycle, creating a two-dimensional grid where:
X-axis (horizontal) shows days of the week (1-7)
Y-axis (vertical) shows hours of the day (0-23)
The cell color and intensity shows the total commits: darker color for higher commit activity, lighter color for lower commit activity, white color for no activity.
Each cell in the heat map grid represents a specific day-hour combination:
![]() |
Figure 220. Github Push Events
Sample input data:
| commits | repo | timestamp | type | user |
|---|---|---|---|---|
| 3 | myapp | 2025-08-11T09:15:23Z | PushEvent | dev1 |
| 1 | myapp | 2025-08-11T14:30:24Z | PushEvent | dev2 |
| 2 | backend | 2025-08-12T10:45:25Z | PushEvent | dev3 |
| 4 | frontend | 2025-08-12T16:20:26Z | PushEvent | dev1 |
| 1 | myapp | 2025-08-13T11:05:27Z | PushEvent | dev4 |
| 2 | backend | 2025-08-13T15:40:28Z | PushEvent | dev2 |
| 3 | frontend | 2025-08-14T08:55:29Z | PushEvent | dev3 |
| 2 | myapp | 2025-08-14T13:10:30Z | PushEvent | dev1 |
| 1 | backend | 2025-08-15T10:25:31Z | PushEvent | dev4 |
| 3 | frontend | 2025-08-15T14:50:32Z | PushEvent | dev2 |
Query:
type=PushEvent
| dayOfWeek := time:dayOfWeek(@timestamp)
| hourOfDay := time:hour(@timestamp)
| groupBy([dayOfWeek, hourOfDay], function=sum(commits, as=TotalCommits))Query breakdown:
Filters events to ensure only Git push events are analyzed.
Extracts the day of the week from the @timestamp field using the
time:dayOfWeek()function and stores the result in a new field named dayOfWeek.Extracts the hour of the day (0-23) from the @timestamp field using the
time:hour()function and stores the result in a new field named hourOfDay.Groups events by both dayOfWeek and hourOfDay, creating a two-dimensional aggregation matrix. For each unique combination of day and hour, it sums the total number of commits.
Configuration:
From the
Searchpage, type your query in the Query Editor → clickChoose in the Widget selector
Click the style icon : this opens the Format panel on the side where some properties are already configured by default based on the query result.
Modify some other widget's properties to obtain the look and feel of this heatmap. For example:
In Layout, tick the checkbox to show cell borders.
In X-axis and Y-axis, enter a preferred custom title.
In Colors, change the palette from the default color to magenta.
You can further customize this widget by setting more properties, see Heat Map Property Reference.
