Common Reliability Enumerations (CREs) Schema
JSON Schema
The latest Common Reliability Enumerations (CREs) JSON schema is available here. To develop CREs, it is recommended to add the CRE JSON schema in Cursor or VSCode. Install the Yaml extension and add the following to your settings.json
:
{
"window.commandCenter": 1,
"workbench.preferredHighContrastColorTheme": "Visual Studio Dark",
"yaml.schemas": {
"https://docs.prequel.dev/cre-schema.json": [
"/rules/cre-*/*.yaml"
]
},
"redhat.telemetry.enabled": false,
"workbench.settings.applyToAllProfiles": [
]
}
This will enforce the schema on Yaml files in the root of the CRE repository under the rules/cre-*
directories.
Go to VSCode Settings. Then search for "settings" and click Edit in settings.json
.
CRE Rules
A CRE rule comprises a description of the problem (application, version, mitigation, etc.), unique metadata to run it in a problem detector, and the conditions and data sources that identify the problem.
Field | Description |
---|---|
cre | The CRE (Common Reliability Enumeration) definition associated with this rule. |
metadata | Metadata containing unique identifying information about the rule. |
rule | The specific sequence or set of conditions and data sources that identify the problem. |
CRE
A CRE describes enough relevant information about a problem for a human or agent to take action.
Field | Type | Description |
---|---|---|
id | string | A unique human-readable identifier that conforms to the CRE identification format CRE-YEAR-0NUM |
severity | uint | Numeric severity level. See severity. |
title | string | A short, descriptive title for the CRE, e.g. "RabbitMQ Mnesia overloaded recovering persistent queues". |
category | string | Problem taxonomy category name (e.g., "message-queue-problems", "asynchronous-task-problems", "database-problems"). |
tags | []string | Arbitrary tags for additional categorization and search. |
author | string | The individual, team, or organization that creates the CRE. |
description | string | A brief explanation of the problem. |
cause | string | A description of what causes this problem. |
impact | string | The impact of this problem if it is triggered (e.g., data loss, downtime, degraded performance, etc.). |
impactScore | uint | A rating of the severity of impact on a scale of 1 (least impactful) to 10 (most impactful). |
mitigation | string | Recommended steps or runbooks to minimize or eliminate the problem. |
mitigationScore | uint | A rating of the difficult to mitigate on a scale of 1 (easiest) to 10 (most challenging). |
references | []string | List of references or links for further reading on the problem, its impact or mitigation. |
reports | uint | A counter or metric indicating how many times this CRE has been reported or encountered. |
applications | []Application | List of applications or components associated with this CRE. |
version | string | Semantic version of the CRE specification in use. |
Applications
Field | Type | Description |
---|---|---|
name | string | Name of the application, process, or service. |
processName | string | The process name as it appears in the operating system. |
processPath | string | The file path to the application process. |
containerName | string | The container name (if running in a containerized environment). |
imageUrl | string | The container image URL or registry path. |
repoUrl | string | The source code repository URL for the application. |
version | string | The version or release number of the application. Version wildcards are permitted. |
Severity
Constant | Numeric Value | Interpretation |
---|---|---|
critical | 0 | Critical severity (requires immediate attention). |
high | 1 | High severity. |
medium | 2 | Medium severity. |
low | 3 | Low severity (least concerning, but still relevant). |
info | 4 | Informational (for logging or reference only). |
Metadata
Field | Type | Description |
---|---|---|
id | string | A unique identifier for the problem detector rule. |
hash | string | A cryptographic hash or similar identifier to detect changes in the rule's definition. |
gen | uint | The "generation" or revision number of the rule, updated by the author on each new change to the rule. |
kind | string | The type of rule, e.g. prequel . |
version | string | The semantic version string associated with this rule. |
Rule
See rule syntax for more information.