Skip to content

Commit

Permalink
Sync eng/common directory with azure-sdk-tools for PR 9354 (#23714)
Browse files Browse the repository at this point in the history
* Add step for emitting rate limits for a token

* add step to eng/common sync template

* Fix resource label output

* Use propery name instead of nested 'resource' property

* Add percent metric too

* Add divide by zero safety

---------

Co-authored-by: Patrick Hallisey <[email protected]>
  • Loading branch information
azure-sdk and hallipr authored Nov 8, 2024
1 parent 2c2872e commit 4a2f743
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
36 changes: 36 additions & 0 deletions eng/common/pipelines/templates/steps/emit-rate-limit-metrics.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
parameters:
- name: GitHubUser
type: string
- name: GitHubToken
type: string

steps:
- pwsh: |
$headers = @{
"Authorization" = "Bearer $env:GITHUB_TOKEN"
"X-GitHub-Api-Version" = "2022-11-28"
}
$response = Invoke-RestMethod -Uri 'https://api.github.com/rate_limit' -Headers $headers -Method Get
$timestamp = Get-Date
foreach ($property in $response.resources.PSObject.Properties)
{
$labels = @{ user= $env:GITHUB_USER; resource= $property.Name }
$remaining = $property.Value.remaining
$limit = $property.Value.limit
$used = $property.Value.used
Write-Host "logmetric: $( [ordered]@{ name= "github_ratelimit_remaining_total"; value= $remaining; timestamp= $timestamp; labels= $labels } | ConvertTo-Json -Compress)"
Write-Host "logmetric: $( [ordered]@{ name= "github_ratelimit_limit_total"; value= $limit; timestamp= $timestamp; labels= $labels } | ConvertTo-Json -Compress)"
Write-Host "logmetric: $( [ordered]@{ name= "github_ratelimit_used_total"; value= $used; timestamp= $timestamp; labels= $labels } | ConvertTo-Json -Compress)"
if ($limit -ne 0) {
$percent = $used / $limit * 100
Write-Host "logmetric: $( [ordered]@{ name= "github_ratelimit_used_percent"; value= $percent; timestamp= $timestamp; labels= $labels } | ConvertTo-Json -Compress)"
}
}
displayName: Check GitHub Rate Limit
env:
GITHUB_TOKEN: ${{ parameters.GitHubToken}}
GITHUB_USER: ${{ parameters.GitHubUser}}
5 changes: 5 additions & 0 deletions eng/common/pipelines/templates/steps/git-push-changes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ steps:
condition: succeeded()
workingDirectory: ${{ parameters.WorkingDirectory }}

- template: /eng/common/pipelines/templates/steps/emit-rate-limit-metrics.yml
parameters:
GitHubUser: azure-sdk
GitHubToken: $(azuresdk-github-pat)

- task: PowerShell@2
displayName: Push changes
condition: and(succeeded(), eq(variables['HasChanges'], 'true'))
Expand Down

0 comments on commit 4a2f743

Please sign in to comment.