integration.timings
Jak dlouho trvá CI na otevřených pull requestech, měřeno ze zaznamenaného pozorování forge: pro každou kontrolu kolik jejích běhů začalo a skončilo, kolik prošlo a kolik selhalo a její medián, 90. percentil (nejbližší pořadí) a nejdelší doba v sekundách, nejpomalejší medián první; pro každý otevřený head s změřenou kontrolou doba od začátku první kontroly po dokončení poslední a kontrola, která trvala nejdéle, nejdelší čekání první; a kolik běhů nešlo změřit (stále běží, čekají ve frontě nebo byly zaznamenány dřív, než se začaly číst starty), které se počítají a nikdy nezměří jako nula. Čtení: forge se na nic neptá; pozorování zaznamenává `majordomus prs refresh`. `observed: false` s důvodem, když tento checkout žádné nezaznamenal.
Jak dlouho trvá CI na otevřených pull requestech, měřeno ze zaznamenaného pozorování forge: pro každou kontrolu kolik jejích běhů začalo a skončilo, kolik prošlo a kolik selhalo a její medián, 90. percentil (nejbližší pořadí) a nejdelší doba v sekundách, nejpomalejší medián první; pro každý otevřený head s změřenou kontrolou doba od začátku první kontroly po dokončení poslední a kontrola, která trvala nejdéle, nejdelší čekání první; a kolik běhů nešlo změřit (stále běží, čekají ve frontě nebo byly zaznamenány dřív, než se začaly číst starty), které se počítají a nikdy nezměří jako nula. Čtení: forge se na nic neptá; pozorování zaznamenává `majordomus prs refresh`. `observed: false` s důvodem, když tento checkout žádné nezaznamenal.
- query
- experimentální
- module integration
- #integration
- #pull-requests
- #ci
- #timings
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_ci_timings |
| HTTP | GET /api/v1/pull-requests/timings operationId integration.timings |
| příkazová řádka | — |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
vstup · Prázdné
Žádné vlastnosti: schopnost nebere žádný vstup.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}výstup · IntegrationTimings
| vlastnost | typ | povinné | popis |
|---|---|---|---|
| pozorováno | boolean | ano | Zda je pozorování forge zaznamenáno v tomto checkoutu. |
| důvod | string | null | ne | Proč nejsou žádná časování, když žádná nejsou. |
| časování | jedno ze 2 | ne | Časy změřené z pozorování, pokud existuje. |
JSON Schema
{
"$defs": {
"CheckTiming": {
"description": "How one check takes, across the open heads that ran it.",
"properties": {
"failed": {
"description": "Of those, how many failed.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"median_seconds": {
"description": "The median duration, in seconds.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"name": {
"description": "The check's name, as the forge reports it.",
"type": "string"
},
"p90_seconds": {
"description": "The 90th percentile duration (nearest rank), in seconds.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"passed": {
"description": "Of those, how many passed.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"runs": {
"description": "Runs that started and completed, so were measured.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"slowest_seconds": {
"description": "The longest run, in seconds.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"name",
"runs",
"passed",
"failed",
"median_seconds",
"p90_seconds",
"slowest_seconds"
],
"type": "object"
},
"CiTimings": {
"description": "CI timings over every open head the observation holds.",
"properties": {
"checks": {
"description": "Every check, the slowest median first.",
"items": {
"$ref": "#/$defs/CheckTiming"
},
"type": "array"
},
"heads": {
"description": "Every head with a measured check, the longest wall time first.",
"items": {
"$ref": "#/$defs/HeadTiming"
},
"type": "array"
},
"measured_runs": {
"description": "Check runs measured, across every check and head.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"observed_at": {
"description": "When the forge was observed, RFC 3339: the moment these timings describe.",
"type": "string"
},
"unmeasured_runs": {
"description": "Check runs the observation holds without both a start and a completion: running,\nqueued, or recorded before starts were read. Counted, never measured as zero.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"observed_at",
"measured_runs",
"unmeasured_runs",
"checks",
"heads"
],
"type": "object"
},
"HeadTiming": {
"description": "How long CI took on one open pull request's head: from its first check's start to its last\ncheck's completion, and the check that took longest.",
"properties": {
"completed_at": {
"description": "When its last measured check completed, RFC 3339.",
"type": "string"
},
"failed": {
"description": "Whether any measured check on the head failed.",
"type": "boolean"
},
"head_sha": {
"description": "The head the checks ran on.",
"type": "string"
},
"number": {
"description": "The pull request.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"slowest_check": {
"description": "The measured check that took longest.",
"type": "string"
},
"slowest_seconds": {
"description": "How long it took, in seconds.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"started_at": {
"description": "When its first measured check started, RFC 3339.",
"type": "string"
},
"wall_seconds": {
"description": "The wall time between them, in seconds: what a reader waited for CI on this head.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"number",
"head_sha",
"started_at",
"completed_at",
"wall_seconds",
"slowest_check",
"slowest_seconds",
"failed"
],
"type": "object"
}
},
"description": "How long CI takes on the open pull requests, or why it is not known.",
"properties": {
"observed": {
"description": "Whether a forge observation is recorded in this checkout.",
"type": "boolean"
},
"reason": {
"description": "Why there are no timings, when there are none.",
"type": [
"string",
"null"
]
},
"timings": {
"anyOf": [
{
"$ref": "#/$defs/CiTimings"
},
{
"type": "null"
}
],
"description": "The timings measured from the observation, when there is one."
}
},
"required": [
"observed"
],
"title": "IntegrationTimings",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- vypnuto — každé volání spustí handler
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.