Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/catchpoint/workflow-telemetry-action
Github action to collect metrics (CPU, memory, I/O, etc ...) from your workflows to help you debug and optimize your CI/CD pipeline
https://github.com/catchpoint/workflow-telemetry-action
actions ci-cd github monitoring observability telemetry workflow
Last synced: 1 day ago
JSON representation
Github action to collect metrics (CPU, memory, I/O, etc ...) from your workflows to help you debug and optimize your CI/CD pipeline
- Host: GitHub
- URL: https://github.com/catchpoint/workflow-telemetry-action
- Owner: catchpoint
- License: apache-2.0
- Created: 2022-05-30T06:57:10.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-24T00:09:36.000Z (5 months ago)
- Last Synced: 2024-12-15T10:03:09.107Z (8 days ago)
- Topics: actions, ci-cd, github, monitoring, observability, telemetry, workflow
- Language: TypeScript
- Homepage:
- Size: 16.4 MB
- Stars: 302
- Watchers: 5
- Forks: 42
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# workflow-telemetry-action
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 MBAnd 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### Example Output
An example output of a simple workflow run will look like this.
![Step Trace Example](/images/step-trace-example.png)
![Metrics Example](/images/metrics-example.png)
![Process Trace Example](/images/proc-trace-example.png)
## Usage
To use the action, add the following step before the steps you want to track.
```yaml
permissions:
pull-requests: write
jobs:
workflow-telemetry-action:
runs-on: ubuntu-latest
steps:
- name: Collect Workflow Telemetry
uses: catchpoint/workflow-telemetry-action@v2
```## Configuration
| 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](https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/) of the workflow run. Defaults to `true`.
| `theme` | Optional | Set to `dark` to generate charts compatible with Github **dark** mode. Defaults to `light`.