at.happyproto.fleet.getRetention
Survival by first-seen cohort. Manual-mode instances are excluded: they have no reporting cadence to miss, so their silence is not churn. Admin only.
Details · query
| Kind | query |
|---|---|
| Authority | fleet.happyproto.at |
| Indexed |
Checks
Validunlimited-stringdefs.cohort.properties.cohortNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.output.schema.properties.statusNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.output.schema.properties.unitNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"cohort": {
"properties": {
"cohort": {
"description": "Month the cohort was first seen.",
"type": "string"
},
"eligible30": {
"description": "Instances old enough to have survived 30 days. THIS is the denominator, not `started` — a cohort ten days old has not failed to survive thirty.",
"type": "integer"
},
"eligible60": {
"type": "integer"
},
"eligible90": {
"type": "integer"
},
"started": {
"type": "integer"
},
"survived30": {
"type": "integer"
},
"survived60": {
"type": "integer"
},
"survived90": {
"type": "integer"
}
},
"required": [
"cohort",
"started"
],
"type": "object"
},
"main": {
"description": "Survival by first-seen cohort. Manual-mode instances are excluded: they have no reporting cadence to miss, so their silence is not churn. Admin only.",
"errors": [
{
"description": "This endpoint requires an authenticated caller.",
"name": "AuthRequired"
},
{
"description": "The caller is not a HappyProto admin.",
"name": "Forbidden"
},
{
"description": "The telemetry store could not be queried.",
"name": "Upstream"
}
],
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cohorts": {
"items": {
"ref": "#cohort",
"type": "ref"
},
"type": "array"
},
"have": {
"description": "History available, when accruing.",
"type": "integer"
},
"need": {
"description": "History required, when accruing.",
"type": "integer"
},
"status": {
"description": "Why a figure is absent. Branch on this, never on field presence.",
"knownValues": [
"ok",
"accruing",
"withheld"
],
"type": "string"
},
"unit": {
"knownValues": [
"days",
"snapshots"
],
"type": "string"
}
},
"required": [
"status",
"cohorts"
],
"type": "object"
}
},
"type": "query"
}
},
"id": "at.happyproto.fleet.getRetention",
"lexicon": 1
}