Skip to content

Instantly share code, notes, and snippets.

View yuriatgoogle's full-sized avatar

Yuri Grinshteyn yuriatgoogle

View GitHub Profile
@yuriatgoogle
yuriatgoogle / egress_quota_use_alerting_policy.mql
Last active November 12, 2021 16:56
GCS Egress Quota Use Ratio - MQL
fetch consumer_quota
| filter resource.service == 'storage.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/rate/net_usage
| align rate(1m)
| group_by [resource.project_id, metric.quota_metric, resource.location],
sum(value.net_usage)
| cast_units('1')
; metric serviceruntime.googleapis.com/quota/limit
| filter metric.limit_name == 'GoogleEgressBandwidth'
| group_by [resource.project_id, metric.quota_metric, resource.location],
{
"serviceLevelIndicator": {
"requestBased": {
"goodTotalRatio": {
"totalServiceFilter": "metric.type=\"logging.googleapis.com/user/lbm_request_count\" resource.type=\"k8s_container\"",
"badServiceFilter": "metric.type=\"logging.googleapis.com/user/lbm_error_count\" resource.type=\"k8s_container\""
}
}
},
"goal": 0.95,
resource "google_monitoring_slo" "request_based_slo" {
# the basics
service = google_monitoring_custom_service.terraform-service.service_id
slo_id = "request-slo"
display_name = "99% of requests are successful in a rolling day"
# the SLI
request_based_sli {
good_total_ratio {
total_service_filter = join(" AND ", [
provider "google" {
project = "stack-doctor"
region = "us-west3"
zone = "us-west3-a"
}
resource "google_monitoring_custom_service" "terraform-service" {
service_id = "terraform-service"
display_name = "Service Created by Terraform"
}
{
"title": "Service Latencies",
"xyChart":
{
"dataSets": [
{
"plotType": "LINE",
"timeSeriesFilter":
{
"filter": "resource.type=\"k8s_container\"
{
"title": "Error Rates",
"xyChart":
{
"dataSets": [
{
"plotType": "LINE",
"timeSeriesFilter":
{
"filter": "resource.type=\"k8s_container\"
@yuriatgoogle
yuriatgoogle / requestrateschart.json
Last active February 25, 2020 20:09
request rates
"title": "Request Rates",
"xyChart":
{
"dataSets": [
{
"plotType": "LINE",
"timeSeriesFilter":
{
"filter": "resource.type=\"k8s_container\" AND metric.type=\"istio.io/service/server/request_count\"",
"perSeriesAligner": "ALIGN_RATE",
{
"timeSeries": [
{
"metric": {
"type": "select_slo_budget_fraction(\"projects/860128900282/services/gae:stack-doctor_default/serviceLevelObjectives/2IooYmjTSROak0g9f-DmpA\")"
},
"resource": {
"type": "gae_app",
"labels": {
"project_id": "stack-doctor"
{
"timeSeries": [
{
"metric": {
"type": "select_slo_health(\"projects/860128900282/services/gae:stack-doctor_default/serviceLevelObjectives/2IooYmjTSROak0g9f-DmpA\")"
},
"resource": {
"type": "gae_app",
"labels": {
"project_id": "stack-doctor"
func main() {
r := mux.NewRouter()
r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
rand.Seed(time.Now().UnixNano())
n := rand.Intn(10) // n will be between 0 and 10
fmt.Printf("randon number was %d\n", n)
if n < 6 {
http.Error(w, "error!", 500)