Sync eng/common directory with azure-sdk-tools for PR 9354 (#23714)
* 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 <pahallis@microsoft.com>
This commit is contained in:
Родитель
2c2872ef2a
Коммит
4a2f743325
|
@ -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}}
|
|
@ -28,6 +28,11 @@ steps:
|
||||||
condition: succeeded()
|
condition: succeeded()
|
||||||
workingDirectory: ${{ parameters.WorkingDirectory }}
|
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
|
- task: PowerShell@2
|
||||||
displayName: Push changes
|
displayName: Push changes
|
||||||
condition: and(succeeded(), eq(variables['HasChanges'], 'true'))
|
condition: and(succeeded(), eq(variables['HasChanges'], 'true'))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче