slo-converter

Crates.ioslo-converter
lib.rsslo-converter
version1.4.0
sourcesrc
created_at2022-04-05 01:58:45.760428
updated_at2023-09-06 14:28:59.059294
descriptionA command line tool that can convert particular YAML schemas to Terraform HCL while also providing support for mustache templating.
homepage
repository
max_upload_size
id562384
size104,861
Figure Technologies (cloud-janitors-figure)

documentation

README

SLO Converter

crates.io

SLO converter is a command line interface that converts YAML, adhering to the Figure SLO Schema, to HCL.

Usage

cargo install slo-converter
A command line tool that can convert particular YAML schemas to Terraform HCL while also providing support for mustache templating.

Usage: slo-converter [OPTIONS] --env <ENV> <YAML> [KEY_VALUES]...

Arguments:
  <YAML>           Path to YAML file
  [KEY_VALUES]...  Key/value pairs delineated with "=" which can render with mustache templating (e.g. k1=v1 k2=v2)

Options:
      --output <OUTPUT>  [default: stdout] [possible values: stdout]
      --env <ENV>        [possible values: development, figure-pay-test, figure-pay-sandbox, figure-pay-prod, figure-tech, figure-tech-test, pio, pio-test, production]
  -l, --lint             Returns a status code based on input parsing
  -h, --help             Print help
  -V, --version          Print version
slo-converter --env figure-pay-test yaml/one-slo.yaml

Templated Values

Mustache style templating is supported for all fields in the yaml file. This is most useful for environment specific tags or alerting channels. Values are passed with the following parameters (see yaml/multiple-slo.yaml for syntax usage):

slo-converter --env development yaml/multiple-slo.yaml critical_alert=\@slack-eng-tech warn_alert=\@slack-eng-tech

Creating SLOs for Figure Products

Notion documentation Github Action

Assisting Initial SLO Development

There's a few domain specific gotchas. A handy script is provided that can be ran like this.

./resource_helper.sh service-task development

NOTE: This script samples recent traces from Datadog. In order to get the best results, you should run against an environment that receives the most traffic.

The output of this script will help inform you if your service is using netty vs tomcat. This is important because your web service metrics will differ, e.g. trace.netty.request, trace.servlet.request. It will also help you verify your health check endpoints, as services use differing conventions.

Further SLO/SLI Resources

Commit count: 0

cargo fmt