Due to the upstream project being stale -- catchpoint#101 (comment), this fork contains an alternative implementation of the chart that uses GFM mermaid, removing the dependency of external charting service, however it does have some limitations
Mermaid implementation is inspired by https://github.com/dev-hato/actions-workflow-metrics, a big chuck of AI code, and some tweaking to make it look good to me
This is good enough to solve my use case, hopefully it would be enough for yours
A GitHub Action to track and monitor the
- workflow runs, jobs and steps
- resource metrics
- and process activities of your GitHub Action workflow runs. If the run is triggered via a Pull Request, it will create a comment on the connected PR with the results and/or publishes the results to the job summary.
The action traces the jobs' step executions and shows them in trace chart,
And collects the following metrics:
- CPU Load (user and system) in percentage
- Memory usage (used and free) in MB
- Network I/O (read and write) in MB
- Disk I/O (read and write) in MB
And traces the process executions (only supported on Ubuntu)
as trace chart with the following information:
- Name
- Start time
- Duration (in ms)
- Finish time
- Exit status as success or fail (highlighted as red)
and as trace table with the following information:
- Name
- Id
- Parent id
- User id
- Start time
- Duration (in ms)
- Exit code
- File name
- Arguments
An example output of a simple workflow run will look like this.
To use the action, add the following step before the steps you want to track.
permissions:
pull-requests: write
jobs:
workflow-telemetry-action:
runs-on: ubuntu-latest
steps:
- name: Collect Workflow Telemetry
uses: catchpoint/workflow-telemetry-action@v2| Option | Requirement | Description |
|---|---|---|
github_token |
Optional | An alternative GitHub token, other than the default provided by GitHub Actions runner. |
metric_frequency |
Optional | Metric collection frequency in seconds. Must be a number. Defaults to 5. |
proc_trace_min_duration |
Optional | Puts minimum limit for process execution duration to be traced. Must be a number. Defaults to -1 which means process duration filtering is not applied. |
proc_trace_sys_enable |
Optional | Enables tracing default system processes (aws, cat, sed, ...). Defaults to false. |
proc_trace_chart_show |
Optional | Enables showing traced processes in trace chart. Defaults to true. |
proc_trace_chart_max_count |
Optional | Maximum number of processes to be shown in trace chart (applicable if proc_trace_chart_show input is true). Must be a number. Defaults to 100. |
proc_trace_table_show |
Optional | Enables showing traced processes in trace table. Defaults to true. |
comment_on_pr |
Optional | Set to true to publish the results as comment to the PR (applicable if workflow run is triggered by PR). Defaults to true. Requires pull-requests: write permission |
job_summary |
Optional | Set to true to publish the results as part of the job summary page of the workflow run. Defaults to true. |
theme |
Optional | Set to dark to generate charts compatible with Github dark mode. Defaults to light. |


