Files
gitlab-ce/config/metrics/schema.json
2023-08-15 18:06:58 +00:00

214 lines
3.6 KiB
JSON

{
"type": "object",
"required": [
"key_path",
"description",
"value_type",
"status",
"product_group",
"product_section",
"product_stage",
"time_frame",
"data_source",
"distribution",
"tier",
"data_category",
"milestone"
],
"properties": {
"key_path": {
"type": "string"
},
"description": {
"type": "string"
},
"product_section": {
"type": [
"string"
]
},
"product_stage": {
"type": [
"string"
]
},
"product_group": {
"type": "string",
"pattern": "^$|^([a-z]+_)*[a-z]+$"
},
"value_type": {
"type": "string",
"enum": [
"string",
"number",
"boolean",
"object"
]
},
"status": {
"type": [
"string"
],
"enum": [
"active",
"removed",
"broken"
]
},
"milestone": {
"type": [
"string"
],
"pattern": "^<?[0-9]+\\.[0-9]+$"
},
"milestone_removed": {
"type": [
"string",
"null"
],
"pattern": "^[0-9]+\\.[0-9]+$"
},
"introduced_by_url": {
"type": [
"string",
"null"
]
},
"removed_by_url": {
"type": [
"string",
"null"
]
},
"repair_issue_url": {
"type": [
"string"
]
},
"options": {
"type": "object"
},
"events": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"unique"
],
"properties": {
"name": {
"type": "string"
},
"unique": {
"type": "string",
"enum": [
"user.id",
"project.id",
"namespace.id"
]
}
}
}
},
"time_frame": {
"type": "string",
"enum": [
"7d",
"28d",
"all",
"none"
]
},
"data_source": {
"type": "string",
"enum": [
"database",
"redis",
"redis_hll",
"prometheus",
"system",
"license",
"internal_events"
]
},
"data_category": {
"type": "string",
"enum": [
"Operational",
"Optional",
"Subscription",
"Standard",
"operational",
"optional",
"subscription",
"standard"
]
},
"instrumentation_class": {
"type": "string",
"pattern": "^(([A-Z][a-z]+)+::)*(([A-Z]+[a-z]+)+)$"
},
"distribution": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ee",
"ce"
]
}
},
"performance_indicator_type": {
"type": "array",
"items": {
"type": "string",
"enum": [
"gmau",
"smau",
"paid_gmau",
"umau",
"customer_health_score"
]
}
},
"tier": {
"type": "array",
"items": {
"type": "string",
"enum": [
"free",
"starter",
"premium",
"ultimate",
"bronze",
"silver",
"gold"
]
}
},
"skip_validation": {
"type": "boolean"
},
"value_json_schema": {
"type": "string"
}
},
"allOf": [
{
"if": {
"properties": {
"status": {
"const": "broken"
}
}
},
"then": {
"required": [
"repair_issue_url"
]
}
}
]
}