• Stars
    star
    264
  • Rank 154,663 (Top 4 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Github action to collect metrics (CPU, memory, I/O, etc ...) from your workflows to help you debug and optimize your CI/CD pipeline

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 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

Example Output

An example output of a simple workflow run will look like this.

Step Trace Example

Metrics Example

Process Trace Example

Usage

To use the action, add the following step before the steps you want to track.

- 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 of the workflow run. Defaults to true.
theme Optional Set to dark to generate charts compatible with Github dark mode. Defaults to light.

More Repositories

1

WebPageTest

Official repository for WebPageTest
PHP
3,047
star
2

WebPageTest.api-nodejs

WebPageTest API wrapper for NodeJS
JavaScript
1,644
star
3

WebPageTest.bulk-tester

Google App Script for spreadsheet that uses the WPT API to bulk test URLs
JavaScript
259
star
4

WebPageTest.agent

Cross-platform WebPageTest agent
Python
210
star
5

WebPageTest.RUM-SpeedIndex

Calculate SpeedIndex measurements from the field
JavaScript
200
star
6

WebPageTest.github-action

Automatically test code changes in WebPageTest and enforce performance budgets
JavaScript
198
star
7

WebPageTest.docs

Documentation for WebPageTest
JavaScript
192
star
8

WebPageTest.visual-metrics

Calculate visual performance metrics from a video (Speed Index, Visual Complete, Incremental progress, etc)
Python
154
star
9

WebPageTest.win-shaper

Windows traffic-shaping packet filter
C++
126
star
10

WebPageTest.xrecord

Console app for capturing video on OS X (particularly from iOS devices)
Swift
122
star
11

WebPageTest.beacon-ml

Evaluate web beacon metrics for impact on business metrics
Python
75
star
12

WebPageTest.tsproxy

Traffic-shaping SOCKS5 proxy
Python
73
star
13

Pietrasanta-traceroute

C
39
star
14

Tracing.examples-kubernetes-java

Catchpoint Tracing examples for Java applications deploying to Kubernetes
Java
23
star
15

WebPageTest.slack

WebPageTest and Slack Integration
JavaScript
21
star
16

WebPageTest.api-recipes

A collection of useful recipes for the WebPageTest API
JavaScript
13
star
17

WebPageTest.agent-install

Automated scripts for installing dedicated wptagent instances
Shell
10
star
18

WebPageTest.iTether

Reverse-tether app for iOS
Python
9
star
19

WebPageTest.iWptBrowser

wkWebView browser shell for iOS WebPagetest agent (integrates with wptagent)
Swift
9
star
20

WebPageTest.server-install

Installation scripts for the WebPageTest server
Shell
9
star
21

WebPageTest.vscode-extension

JavaScript
7
star
22

foresight-test-kit-action

Action for optimizing your tests by listing test runs and with history
TypeScript
7
star
23

WebPageTest.recorder-chrome-extension

A Chrome extension for outputting user recording sessions as WebPageTest Custom Scripts
JavaScript
6
star
24

WebPageTest.pcap-parser

Parser to extract information from tcpdump pcap files for WebPageTest
Python
6
star
25

WebPageTest.recorder-to-script

Script to convert Chrome user flow recordings to WPT Custom Scripts
TypeScript
6
star
26

WebPageTest.trace-parser

Parser to extract information from Chrome Traces for WebPageTest
Python
6
star
27

foresight-issues

This is the place where the Foresight issues are put in the table
5
star
28

Integrations.SIP

Shell
5
star
29

foresight-workflow-kit-action

TypeScript
5
star
30

WebPageTest.extension-chrome

Chrome helper extension to launch WebPageTest for current URL
JavaScript
5
star
31

WebPageTest.adbwatch

Python app that monitors and kills the Android Debug Bridge when it stops working.
C++
4
star
32

WebPageTest.devtools-parser

Parse a remote dev tools event log and produce page-level and request information json files
Python
3
star
33

WebPageTest.healthcheck

HTTP Healthcheck responder for WebPageTest agents (wptagent)
Python
3
star
34

WebPageTest.etw

Windows ETW watcher for wptagent
C#
3
star
35

WebPageTest.browser-install

Automatically install and keep browsers up to date with the latest releases (on Windows)
Python
2
star
36

Community-Scripts

Repository for custom scripts.
Python
2
star
37

WebPageTest.chromehooks

Windows command-line utility to find the function offsets for SSL/TLS functions in Chrome using the public symbols
Python
2
star
38

WebPageTest.microsoft-teams-bot

JavaScript
2
star
39

Integrations.GoogleCloudMonitoring

JavaScript
2
star
40

WebPageTest.extension-firefox

Extension for Firefox to launch WebPageTest for current URL
JavaScript
2
star
41

Integrations.splunk

Python
1
star
42

Integrations.SumoLogic

1
star
43

WebPageTest.crawler

JavaScript
1
star
44

WebPageTest.battery-time

Browser-based battery life test suite. Used for measuring how long a device can run on a single charge.
1
star
45

terraform-provider-catchpoint

Go
1
star
46

foresight-client-sdk

Foresight API client SDK
Java
1
star
47

Integrations.NewRelic

New Relic Integrations uses catchpoint Test Data Webhook to send data to New Relic Platform, this is accomplished by using New Relic’s Metrics API. To complete this integration, we will rely on third party cloud function to accept the data from Catchpoint API, process it in the desired format and then push it to New Relic. With this integration we are enabling DevOps team to visualise Catchpoints digital experience data with New Relic’s Application Performance Monitoring (APM) data together.
JavaScript
1
star
48

WebPageTest.winres

Set the Windows desktop to the maximum supported by the monitor/video card. This is primarily used in a headless environment like EC2 to maximize the desktop for visual testing.
C++
1
star
49

WebPageTest.tcpdump

Windows tcpdump console app for wptagent (requires WinPCap)
C
1
star
50

Tracing.examples-kubernetes-go

Catchpoint Tracing examples for Go applications deploying to Kubernetes
Go
1
star
51

webpage-visually-complete

Visually Complete is calculated by reporting the time until roughly 80% of elements in the viewport have loaded. It references img, iframe, css, script, and subdocument elements in the Resource Timing API to determine the time from navigation to the page appearing loaded to an end user.
1
star