question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Runner Observability

See original GitHub issue

Prerequisites

  • You use GitHub Enterprise Server
  • Naturally, you use Self-Hosted Runners
  • You embrace DevOps, meaning you give the teams free reign over the runners activity

Nature of problem Assuming you have (like us) over 100 developers, dozens or hundreds of workflows. All share the same self-hosted runner(s). You have no oversight, who highjacks the runners. Highjack means hogging any form of resouce:

  • Runtime
  • Upload volume
  • Log volume

Describe the enhancement The cleanest enhancement would be a form of extension hooks. Upon job start a hook in some form gets called, within this hook you could then define your own actions. Maybe something in style of Swizzling where the native hook does nothing (or a console log) while you can swizzle the component to add your own action. Upon completion another hook gets called with which you can then complete your observability.

Code Snippet

Some pseudo code. Given that the runner is .NET code it would not look like that, I just come from the TS world.

function onInit(flowId: UUID, runner: UUID, context: GitHubContext){
  infos = composeInfos(args);
  prometheus.pushgateway.push(infos);
}

function onInit(flowId: UUID, runner: UUID, context: GitHubContext, duration: number, uploadedBytes: number, loggedLines: number){
  infos = composeInfos(args);
  prometheus.pushgateway.push(infos);
}

Additional information It might be that this concept already exists, but then its just not documented or not findable.

Also, I once saw a /timing API but I can not find it anymore, seems to have been removed.

Clearly, when enterprises start to adopt Actions the demand for observability will raise. Are we alone? 🛸

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:14
  • Comments:5

github_iconTop GitHub Comments

4reactions
jbergstroemcommented, May 26, 2021

Other metrics that would make sense is for instance queue length. In gitlab land there are excellent ways of getting observability out of the runner via prometheus exporters. I wish the github runner took a similar approach.

1reaction
thboopcommented, Mar 30, 2022

We’ve shipped a beta of this functionality in 2.289.1, please try it out and provide any feedback you have on the adr!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Observability for your App Runner service
Observability for your AWS App Runner service—monitoring metrics, reading logs, handling events, tracking service action calls, and tracing application ...
Read more >
create-observability-configuration
Create an App Runner observability configuration resource. App Runner requires this resource when you create or update App Runner services and you want...
Read more >
Product Direction - Analytics:Observability
A unified observability platform for your DevOps needs. ... Inspired by the OpenTelemetry Jenkins plugin we should enable runners to instrument pipeline ...
Read more >
GitHub Actions Self-Hosted Runner Observability and ...
Background. I led the migration from Jenkins to GitHub Actions (GHA) at Venmo. We were required to run CI/CD pipelines on our infrastructure ......
Read more >
What is observability? Not just logs, metrics, and traces
Observability, the ability to measure a system's current state based on the data it generates, is critical for cloud-native environments.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found