Promote scorecards
What is a Scorecard?
Scorecards enable us to define and track metrics/standards for our Port entities, based on their properties. Each scorecard consists of a set of rules, where each rule defines one or more conditions that need to be met.
Each rule has a level
property whose value can be defined per to the way you define standards in your organization,
for example:
- Service maturity can be defined as
Basic
,Bronze
,Silver
,Gold
. - Security standards can be defined as
Low
,Medium
,High
,Critical
. - Production readiness can be defined as traffic light colors
Red
,Orange
,Yellow
,Green
. - Engineering quality can be defined as
Poor
,Fair
,Good
,Excellent
. - Service response time can be defined as
A
,B
,C
,D
,F
.
💡 Scorecard use cases
Scorecards can be used to evaluate the maturity, production readiness and engineering quality of any entity in your software catalog, for example:
- Does a service has an on-call defined?
- Does a README.md file exist in the repository?
- Is Grafana defined for the K8s cluster?
- Is the relation of a certain entity empty?
In this live demo example, you can see the scorecards defined on a service and their evaluation. 🎬
Scorecard structure table
A single scorecard defines a category to group different checks, validations and evaluations. Here is the structure of a single scorecard:
Field | Type | Description |
---|---|---|
title | String | Scorecard name that will be shown in the UI |
identifier | String | The unique identifier of the Scorecard . The identifier is used for API calls, programmatic access and distinguishing between different scorecards |
filter | Object | Optional set of conditions to filter entities that will be evaluated by the scorecard |
levels | Array | The levels that we define for the scorecard, for example Basic , Bronze , Silver , Gold |
rules | Object | The rules that we create for each scorecard to determine its level |
A scorecard contains and groups multiple rules that are relevant to its specific category, for example a scorecard for service maturity can contain 3 rules, while the production readiness scorecard can contain 2 completely different rules.
Levels
Levels are the different stages that an entity can be in, according to the rules that it passes.
By default, the levels are: Basic
, Bronze
, Silver
, Gold
.
The levels can be customized according to your organization's standards and with the colors that you prefer.
Here is an example of a few level types that can be defined:
The levels are defined in the order of importance, where the first level is the most basic level and the last level is the most advanced.
The basic level is the default level for all entities.
If the entity didn't pass any rule, it will be at the Basic
level, and thus can't have a rule associated with it.
- Default
- Custom
- Traffic Light
{
"identifier": "Ownership",
"title": "Ownership",
"levels": [
{
"color": "paleBlue",
"title": "Basic"
},
{
"color": "bronze",
"title": "Bronze"
},
{
"color": "silver",
"title": "Silver"
},
{
"color": "gold",
"title": "Gold"
}
],
"rules": [
{
"identifier": "has-resp-team",
"title": "Has responsible team",
"description": "The service has a designated responsible team assigned, ensuring clear ownership and accountability for the service's development, maintenance, and support, promoting effective collaboration, timely issue resolution, and efficient decision-making.",
"level": "Bronze",
"query": {
"combinator": "and",
"conditions": [
{
"operator": "isNotEmpty",
"property": "$team"
}
]
}
}
]
}
{
"identifier": "monitoringMaturity",
"title": "Monitoring Maturity",
"levels": [
{
"color": "paleBlue",
"title": "low"
},
{
"color": "bronze",
"title": "medium"
},
{
"color": "gold",
"title": "high"
}
],
"rules": []
}
{
"identifier": "ProductionReadiness",
"title": "Production Readiness",
"levels": [
{
"color": "red",
"title": "Red"
},
{
"color": "orange",
"title": "Orange"
},
{
"color": "yellow",
"title": "Yellow"
},
{
"color": "green",
"title": "Green"
}
],
"rules": []
}