{"id":"4d6c369e-e6c6-4ab3-bc1a-aeaa4b7a6589","shortId":"94qMEz","kind":"skill","title":"slo-implementation","tagline":"Framework for defining and implementing Service Level Indicators (SLIs), Service Level Objectives (SLOs), and error budgets.","description":"# SLO Implementation\n\nFramework for defining and implementing Service Level Indicators (SLIs), Service Level Objectives (SLOs), and error budgets.\n\n## Do not use this skill when\n\n- The task is unrelated to slo implementation\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources/implementation-playbook.md`.\n\n## Purpose\n\nImplement measurable reliability targets using SLIs, SLOs, and error budgets to balance reliability with innovation velocity.\n\n## Use this skill when\n\n- Define service reliability targets\n- Measure user-perceived reliability\n- Implement error budgets\n- Create SLO-based alerts\n- Track reliability goals\n\n## SLI/SLO/SLA Hierarchy\n\n```\nSLA (Service Level Agreement)\n  ↓ Contract with customers\nSLO (Service Level Objective)\n  ↓ Internal reliability target\nSLI (Service Level Indicator)\n  ↓ Actual measurement\n```\n\n## Defining SLIs\n\n### Common SLI Types\n\n#### 1. Availability SLI\n```promql\n# Successful requests / Total requests\nsum(rate(http_requests_total{status!~\"5..\"}[28d]))\n/\nsum(rate(http_requests_total[28d]))\n```\n\n#### 2. Latency SLI\n```promql\n# Requests below latency threshold / Total requests\nsum(rate(http_request_duration_seconds_bucket{le=\"0.5\"}[28d]))\n/\nsum(rate(http_request_duration_seconds_count[28d]))\n```\n\n#### 3. Durability SLI\n```\n# Successful writes / Total writes\nsum(storage_writes_successful_total)\n/\nsum(storage_writes_total)\n```\n\n**Reference:** See `references/slo-definitions.md`\n\n## Setting SLO Targets\n\n### Availability SLO Examples\n\n| SLO % | Downtime/Month | Downtime/Year |\n|-------|----------------|---------------|\n| 99%   | 7.2 hours      | 3.65 days     |\n| 99.9% | 43.2 minutes   | 8.76 hours    |\n| 99.95%| 21.6 minutes   | 4.38 hours    |\n| 99.99%| 4.32 minutes   | 52.56 minutes |\n\n### Choose Appropriate SLOs\n\n**Consider:**\n- User expectations\n- Business requirements\n- Current performance\n- Cost of reliability\n- Competitor benchmarks\n\n**Example SLOs:**\n```yaml\nslos:\n  - name: api_availability\n    target: 99.9\n    window: 28d\n    sli: |\n      sum(rate(http_requests_total{status!~\"5..\"}[28d]))\n      /\n      sum(rate(http_requests_total[28d]))\n\n  - name: api_latency_p95\n    target: 99\n    window: 28d\n    sli: |\n      sum(rate(http_request_duration_seconds_bucket{le=\"0.5\"}[28d]))\n      /\n      sum(rate(http_request_duration_seconds_count[28d]))\n```\n\n## Error Budget Calculation\n\n### Error Budget Formula\n\n```\nError Budget = 1 - SLO Target\n```\n\n**Example:**\n- SLO: 99.9% availability\n- Error Budget: 0.1% = 43.2 minutes/month\n- Current Error: 0.05% = 21.6 minutes/month\n- Remaining Budget: 50%\n\n### Error Budget Policy\n\n```yaml\nerror_budget_policy:\n  - remaining_budget: 100%\n    action: Normal development velocity\n  - remaining_budget: 50%\n    action: Consider postponing risky changes\n  - remaining_budget: 10%\n    action: Freeze non-critical changes\n  - remaining_budget: 0%\n    action: Feature freeze, focus on reliability\n```\n\n**Reference:** See `references/error-budget.md`\n\n## SLO Implementation\n\n### Prometheus Recording Rules\n\n```yaml\n# SLI Recording Rules\ngroups:\n  - name: sli_rules\n    interval: 30s\n    rules:\n      # Availability SLI\n      - record: sli:http_availability:ratio\n        expr: |\n          sum(rate(http_requests_total{status!~\"5..\"}[28d]))\n          /\n          sum(rate(http_requests_total[28d]))\n\n      # Latency SLI (requests < 500ms)\n      - record: sli:http_latency:ratio\n        expr: |\n          sum(rate(http_request_duration_seconds_bucket{le=\"0.5\"}[28d]))\n          /\n          sum(rate(http_request_duration_seconds_count[28d]))\n\n  - name: slo_rules\n    interval: 5m\n    rules:\n      # SLO compliance (1 = meeting SLO, 0 = violating)\n      - record: slo:http_availability:compliance\n        expr: sli:http_availability:ratio >= bool 0.999\n\n      - record: slo:http_latency:compliance\n        expr: sli:http_latency:ratio >= bool 0.99\n\n      # Error budget remaining (percentage)\n      - record: slo:http_availability:error_budget_remaining\n        expr: |\n          (sli:http_availability:ratio - 0.999) / (1 - 0.999) * 100\n\n      # Error budget burn rate\n      - record: slo:http_availability:burn_rate_5m\n        expr: |\n          (1 - (\n            sum(rate(http_requests_total{status!~\"5..\"}[5m]))\n            /\n            sum(rate(http_requests_total[5m]))\n          )) / (1 - 0.999)\n```\n\n### SLO Alerting Rules\n\n```yaml\ngroups:\n  - name: slo_alerts\n    interval: 1m\n    rules:\n      # Fast burn: 14.4x rate, 1 hour window\n      # Consumes 2% error budget in 1 hour\n      - alert: SLOErrorBudgetBurnFast\n        expr: |\n          slo:http_availability:burn_rate_1h > 14.4\n          and\n          slo:http_availability:burn_rate_5m > 14.4\n        for: 2m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"Fast error budget burn detected\"\n          description: \"Error budget burning at {{ $value }}x rate\"\n\n      # Slow burn: 6x rate, 6 hour window\n      # Consumes 5% error budget in 6 hours\n      - alert: SLOErrorBudgetBurnSlow\n        expr: |\n          slo:http_availability:burn_rate_6h > 6\n          and\n          slo:http_availability:burn_rate_30m > 6\n        for: 15m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"Slow error budget burn detected\"\n          description: \"Error budget burning at {{ $value }}x rate\"\n\n      # Error budget exhausted\n      - alert: SLOErrorBudgetExhausted\n        expr: slo:http_availability:error_budget_remaining < 0\n        for: 5m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"SLO error budget exhausted\"\n          description: \"Error budget remaining: {{ $value }}%\"\n```\n\n## SLO Dashboard\n\n**Grafana Dashboard Structure:**\n\n```\n┌────────────────────────────────────┐\n│ SLO Compliance (Current)           │\n│ ✓ 99.95% (Target: 99.9%)          │\n├────────────────────────────────────┤\n│ Error Budget Remaining: 65%        │\n│ ████████░░ 65%                     │\n├────────────────────────────────────┤\n│ SLI Trend (28 days)                │\n│ [Time series graph]                │\n├────────────────────────────────────┤\n│ Burn Rate Analysis                 │\n│ [Burn rate by time window]         │\n└────────────────────────────────────┘\n```\n\n**Example Queries:**\n\n```promql\n# Current SLO compliance\nsli:http_availability:ratio * 100\n\n# Error budget remaining\nslo:http_availability:error_budget_remaining\n\n# Days until error budget exhausted (at current burn rate)\n(slo:http_availability:error_budget_remaining / 100)\n*\n28\n/\n(1 - sli:http_availability:ratio) * (1 - 0.999)\n```\n\n## Multi-Window Burn Rate Alerts\n\n```yaml\n# Combination of short and long windows reduces false positives\nrules:\n  - alert: SLOBurnRateHigh\n    expr: |\n      (\n        slo:http_availability:burn_rate_1h > 14.4\n        and\n        slo:http_availability:burn_rate_5m > 14.4\n      )\n      or\n      (\n        slo:http_availability:burn_rate_6h > 6\n        and\n        slo:http_availability:burn_rate_30m > 6\n      )\n    labels:\n      severity: critical\n```\n\n## SLO Review Process\n\n### Weekly Review\n- Current SLO compliance\n- Error budget status\n- Trend analysis\n- Incident impact\n\n### Monthly Review\n- SLO achievement\n- Error budget usage\n- Incident postmortems\n- SLO adjustments\n\n### Quarterly Review\n- SLO relevance\n- Target adjustments\n- Process improvements\n- Tooling enhancements\n\n## Best Practices\n\n1. **Start with user-facing services**\n2. **Use multiple SLIs** (availability, latency, etc.)\n3. **Set achievable SLOs** (don't aim for 100%)\n4. **Implement multi-window alerts** to reduce noise\n5. **Track error budget** consistently\n6. **Review SLOs regularly**\n7. **Document SLO decisions**\n8. **Align with business goals**\n9. **Automate SLO reporting**\n10. **Use SLOs for prioritization**\n\n## Reference Files\n\n- `assets/slo-template.md` - SLO definition template\n- `references/slo-definitions.md` - SLO definition patterns\n- `references/error-budget.md` - Error budget calculations\n\n## Related Skills\n\n- `prometheus-configuration` - For metric collection\n- `grafana-dashboards` - For SLO visualization\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["slo","implementation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-slo-implementation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/slo-implementation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34515 github stars · SKILL.md body (8,596 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T12:51:48.097Z","embedding":null,"createdAt":"2026-04-18T21:45:09.834Z","updatedAt":"2026-04-22T12:51:48.097Z","lastSeenAt":"2026-04-22T12:51:48.097Z","tsv":"'0':382,469,672 '0.05':343 '0.1':338 '0.5':195,311,448 '0.99':494 '0.999':482,511,513,543,763 '1':155,329,466,512,527,542,560,568,757,762,856 '10':373,910 '100':358,514,730,755,878 '14.4':557,579,587,790,798 '15m':641 '1h':578,789 '1m':553 '2':177,564,863 '21.6':244,344 '28':707,756 '28d':170,176,196,204,278,287,293,301,312,320,423,429,449,457 '2m':589 '3':205,870 '3.65':236 '30m':638,813 '30s':406 '4':879 '4.32':249 '4.38':246 '43.2':239,339 '5':169,286,422,534,616,888 '50':348,365 '500ms':433 '52.56':251 '5m':462,525,535,541,586,674,797 '6':612,620,631,639,806,814,893 '65':703,704 '6h':630,805 '6x':610 '7':897 '7.2':234 '8':901 '8.76':241 '9':906 '99':233,299 '99.9':238,276,334,699 '99.95':243,697 '99.99':248 'achiev':836,872 'action':76,359,366,374,383 'actual':148 'adjust':843,849 'agreement':133 'aim':876 'alert':124,545,551,570,622,663,769,781,884 'align':902 'analysi':714,830 'annot':593,645,678 'api':273,295 'appli':68 'appropri':254 'ask':976 'assets/slo-template.md':917 'autom':907 'avail':156,227,274,335,408,413,474,479,502,509,522,575,583,627,635,668,728,736,751,760,786,794,802,810,867 'balanc':99 'base':123 'benchmark':267 'best':70,854 'bool':481,493 'boundari':984 'bucket':193,309,446 'budget':19,37,97,119,322,325,328,337,347,350,354,357,364,372,381,496,504,516,566,597,602,618,649,654,661,670,682,686,701,732,738,743,753,827,838,891,927 'burn':517,523,556,576,584,598,603,609,628,636,650,655,712,715,747,767,787,795,803,811 'busi':259,904 'calcul':323,928 'chang':370,379 'choos':253 'clarif':978 'clarifi':62 'clear':951 'collect':936 'combin':771 'common':152 'competitor':266 'complianc':465,475,487,695,725,825 'configur':933 'consid':256,367 'consist':892 'constraint':64 'consum':563,615 'contract':134 'cost':263 'count':203,319,456 'creat':120 'criteria':987 'critic':378,592,677,817 'current':261,341,696,723,746,823 'custom':136 'dashboard':690,692,939 'day':237,708,740 'decis':900 'defin':6,24,108,150 'definit':919,923 'describ':955 'descript':600,652,684 'detail':81 'detect':599,651 'develop':361 'differ':54 'document':898 'domain':55 'downtime/month':231 'downtime/year':232 'durabl':206 'durat':191,201,307,317,444,454 'enhanc':853 'environ':967 'environment-specif':966 'error':18,36,96,118,321,324,327,336,342,349,353,495,503,515,565,596,601,617,648,653,660,669,681,685,700,731,737,742,752,826,837,890,926 'etc':869 'exampl':82,229,268,332,720 'exhaust':662,683,744 'expect':258 'expert':972 'expr':415,439,476,488,506,526,572,624,665,783 'face':861 'fals':778 'fast':555,595 'featur':384 'file':916 'focus':386 'formula':326 'framework':4,22 'freez':375,385 'goal':63,127,905 'grafana':691,938 'grafana-dashboard':937 'graph':711 'group':401,548 'hierarchi':129 'hour':235,242,247,561,569,613,621 'http':165,173,189,199,282,290,305,315,412,418,426,436,442,452,473,478,485,490,501,508,521,530,538,574,582,626,634,667,727,735,750,759,785,793,801,809 'impact':832 'implement':3,8,21,26,50,88,117,393,880 'improv':851 'incid':831,840 'indic':11,29,147 'innov':102 'input':67,981 'instruct':61 'intern':141 'interv':405,461,552 'label':590,642,675,815 'latenc':178,183,296,430,437,486,491,868 'le':194,310,447 'level':10,14,28,32,132,139,146 'limit':943 'long':775 'match':952 'measur':89,112,149 'meet':467 'metric':935 'minut':240,245,250,252 'minutes/month':340,345 'miss':989 'month':833 'multi':765,882 'multi-window':764,881 'multipl':865 'name':272,294,402,458,549 'need':52 'nois':887 'non':377 'non-crit':376 'normal':360 'object':15,33,140 'open':85 'outcom':74 'output':961 'outsid':58 'p95':297 'pattern':924 'perceiv':115 'percentag':498 'perform':262 'permiss':982 'polici':351,355 'posit':779 'postmortem':841 'postpon':368 'practic':71,855 'priorit':914 'process':820,850 'prometheus':394,932 'prometheus-configur':931 'promql':158,180,722 'provid':75 'purpos':87 'quarter':844 'queri':721 'rate':164,172,188,198,281,289,304,314,417,425,441,451,518,524,529,537,559,577,585,607,611,629,637,659,713,716,748,768,788,796,804,812 'ratio':414,438,480,492,510,729,761 'record':395,399,410,434,471,483,499,519 'reduc':777,886 'refer':221,389,915 'references/error-budget.md':391,925 'references/slo-definitions.md':223,921 'regular':896 'relat':929 'relev':69,847 'reliabl':90,100,110,116,126,142,265,388 'remain':346,356,363,371,380,497,505,671,687,702,733,739,754 'report':909 'request':160,162,166,174,181,186,190,200,283,291,306,316,419,427,432,443,453,531,539 'requir':66,84,260,980 'resources/implementation-playbook.md':86 'review':819,822,834,845,894,973 'riski':369 'rule':396,400,404,407,460,463,546,554,780 'safeti':983 'scope':60,954 'second':192,202,308,318,445,455 'see':222,390 'seri':710 'servic':9,13,27,31,109,131,138,145,862 'set':224,871 'sever':591,643,676,816 'short':773 'skill':42,106,930,946 'skill-slo-implementation' 'sla':130 'sli':144,153,157,179,207,279,302,398,403,409,411,431,435,477,489,507,705,726,758 'sli/slo/sla':128 'slis':12,30,93,151,866 'slo':2,20,49,122,137,225,228,230,330,333,392,459,464,468,472,484,500,520,544,550,573,581,625,633,666,680,689,694,724,734,749,784,792,800,808,818,824,835,842,846,899,908,918,922,941 'slo-bas':121 'slo-implement':1 'sloburnratehigh':782 'sloerrorbudgetburnfast':571 'sloerrorbudgetburnslow':623 'sloerrorbudgetexhaust':664 'slos':16,34,94,255,269,271,873,895,912 'slow':608,647 'source-sickn33' 'specif':968 'start':857 'status':168,285,421,533,828 'step':77 'stop':974 'storag':213,218 'structur':693 'substitut':964 'success':159,208,215,986 'sum':163,171,187,197,212,217,280,288,303,313,416,424,440,450,528,536 'summari':594,646,679 'target':91,111,143,226,275,298,331,698,848 'task':45,950 'templat':920 'test':970 'threshold':184 'time':709,718 'tool':57,852 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':161,167,175,185,210,216,220,284,292,420,428,532,540 'track':125,889 'treat':959 'trend':706,829 'type':154 'unrel':47 'usag':839 'use':40,92,104,864,911,944 'user':114,257,860 'user-fac':859 'user-perceiv':113 'valid':73,969 'valu':605,657,688 'veloc':103,362 'verif':79 'violat':470 'visual':942 'warn':644 'week':821 'window':277,300,562,614,719,766,776,883 'write':209,211,214,219 'x':558,606,658 'yaml':270,352,397,547,770","prices":[{"id":"98b42c4a-4aba-4214-a664-30342a67baaf","listingId":"4d6c369e-e6c6-4ab3-bc1a-aeaa4b7a6589","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:45:09.834Z"}],"sources":[{"listingId":"4d6c369e-e6c6-4ab3-bc1a-aeaa4b7a6589","source":"github","sourceId":"sickn33/antigravity-awesome-skills/slo-implementation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/slo-implementation","isPrimary":false,"firstSeenAt":"2026-04-18T21:45:09.834Z","lastSeenAt":"2026-04-22T12:51:48.097Z"}],"details":{"listingId":"4d6c369e-e6c6-4ab3-bc1a-aeaa4b7a6589","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"slo-implementation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34515,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"6fd4d789eafff83aab7845a17063cf95ef386895","skill_md_path":"skills/slo-implementation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/slo-implementation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"slo-implementation","description":"Framework for defining and implementing Service Level Indicators (SLIs), Service Level Objectives (SLOs), and error budgets."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/slo-implementation"},"updatedAt":"2026-04-22T12:51:48.097Z"}}