Crates.io | slo-converter |
lib.rs | slo-converter |
version | 1.4.0 |
source | src |
created_at | 2022-04-05 01:58:45.760428 |
updated_at | 2023-09-06 14:28:59.059294 |
description | A command line tool that can convert particular YAML schemas to Terraform HCL while also providing support for mustache templating. |
homepage | |
repository | |
max_upload_size | |
id | 562384 |
size | 104,861 |
SLO converter is a command line interface that converts YAML, adhering to the Figure SLO Schema, to HCL.
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
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
Notion documentation Github Action
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.