Skip to main content

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:

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.

FieldDescription
creThe CRE (Common Reliability Enumeration) definition associated with this rule.
metadataMetadata containing unique identifying information about the rule.
ruleThe 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.

FieldTypeDescription
idstringA unique human-readable identifier that conforms to the CRE identification format CRE-YEAR-0NUM
severityuintNumeric severity level. See severity.
titlestringA short, descriptive title for the CRE, e.g. "RabbitMQ Mnesia overloaded recovering persistent queues".
categorystringProblem taxonomy category name (e.g., "message-queue-problems", "asynchronous-task-problems", "database-problems").
tags[]stringArbitrary tags for additional categorization and search.
authorstringThe individual, team, or organization that creates the CRE.
descriptionstringA brief explanation of the problem.
causestringA description of what causes this problem.
impactstringThe impact of this problem if it is triggered (e.g., data loss, downtime, degraded performance, etc.).
impactScoreuintA rating of the severity of impact on a scale of 1 (least impactful) to 10 (most impactful).
mitigationstringRecommended steps or runbooks to minimize or eliminate the problem.
mitigationScoreuintA rating of the difficult to mitigate on a scale of 1 (easiest) to 10 (most challenging).
references[]stringList of references or links for further reading on the problem, its impact or mitigation.
reportsuintA counter or metric indicating how many times this CRE has been reported or encountered.
applications[]ApplicationList of applications or components associated with this CRE.
versionstringSemantic version of the CRE specification in use.

Applications

FieldTypeDescription
namestringName of the application, process, or service.
processNamestringThe process name as it appears in the operating system.
processPathstringThe file path to the application process.
containerNamestringThe container name (if running in a containerized environment).
imageUrlstringThe container image URL or registry path.
repoUrlstringThe source code repository URL for the application.
versionstringThe version or release number of the application. Version wildcards are permitted.

Severity

ConstantNumeric ValueInterpretation
critical0Critical severity (requires immediate attention).
high1High severity.
medium2Medium severity.
low3Low severity (least concerning, but still relevant).
info4Informational (for logging or reference only).

Metadata

FieldTypeDescription
idstringA unique identifier for the problem detector rule.
hashstringA cryptographic hash or similar identifier to detect changes in the rule's definition.
genuintThe "generation" or revision number of the rule, updated by the author on each new change to the rule.
kindstringThe type of rule, e.g. prequel.
versionstringThe semantic version string associated with this rule.

Rule

See rule syntax for more information.