blob: 8526c1d4dee9809ddd9d0bdfb4b270ca2fdd05ec [file]
# This file defines alerts to be triggered by the server.
#
# AlertServer should tolerate no errors.
[[rule]]
name = "AlertServer Errors"
message = "The Error rate for the alertserver is too high, please check the logs."
database = "skmetrics"
query = "SELECT derivative(mean(value)) FROM \"logs\" WHERE \"name\" = 'alertserver' AND level = 'ERROR' AND host = 'skia-alerts' AND time > now() - 4m group by time(2m) order by time desc limit 1"
category = "infra"
conditions = ["x > 0"]
actions = ["Email(alerts@skia.org)"]
auto-dismiss = true
nag = "24h"
#
# General
#
[[rule]]
name = "Too many Go routines in %(app)s"
message = "Too many Go routines in %(app)s running on $(host)s"
database = "skmetrics"
query = "SELECT mean(value) FROM \"runtime-metrics\" WHERE metric='num-goroutine' AND time > now() - 10m GROUP BY app,host"
category = "infra"
conditions = ["x > 3000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Low Root Disk Space on %(host)s"
message = "Free space has fallen below 1GB on %(host)s root drive."
database = "graphite"
query = "SELECT mean(value) FROM \"df_complex-free\" WHERE resource = 'df-root' AND time > now() - 5m GROUP BY host"
category = "infra"
conditions = ["x <= 1e9"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Low Disk Space on %(host)s"
message = "Free space has fallen below 10GB on %(host)s drive %(resource)s."
database = "graphite"
query = "SELECT mean(value) FROM \"df_complex-free\" WHERE resource = 'df-mnt-pd0' OR resource = 'df-mnt-ssd0' AND time > now() - 5m GROUP BY host,resource"
category = "infra"
conditions = ["x <= 1e10"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Probe failed %(probename)s"
message = "Endpoint %(probename)s has failed to respond in at least 10 minutes. See https://github.com/google/skia-buildbot/search?q=%(probename)s+filename%3Aprobers.json for the endpoing URL."
database = "skmetrics"
query = "select mean(value) from \"prober\" where type='failure' AND time > now() - 10m group by probename;"
category = "infra"
conditions = ["x >= 1"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
#
# SkiaPerf and SkiaGold
#
[[rule]]
name = "Perf Alerts"
message = "At least one perf alert has been found. Please visit https://perf.skia.org/alerts/ to triage."
database = "skmetrics"
query = "select value from \"perf.clustering.untriaged\" WHERE app = 'skiaperf' AND host = 'skia-perf' order by time desc limit 1"
category = "Perf"
conditions = ["x > 0"]
actions = ["Email(alerts@skia.org)"]
auto-dismiss = true
nag = "24h"
[[rule]]
name = "Gold Alert (GM)"
message = "At least one untriaged GM has been found. Please visit https://gold.skia.org/ to triage."
database = "skmetrics"
query = "select value from \"gold.status.by-corpus\" WHERE type='untriaged' AND app = 'skiacorrectness' AND host = 'skia-gold-prod' order by time desc limit 1"
category = "Gold"
conditions = ["x > 0"]
actions = ["Email(alerts@skia.org)"]
auto-dismiss = true
nag = "24h"
[[rule]]
name = "Expired Ignores (Gold)"
message = "At least one expired ignore rule has been found. Please visit https://gold.skia.org/ignores to delete or extend."
database = "skmetrics"
query = "select value from \"gold.num-expired-ignore-rules\" WHERE app = 'skiacorrectness' AND host = 'skia-gold-prod' order by time desc limit 1"
category = "Gold"
conditions = ["x > 0"]
actions = ["Email(alerts@skia.org)"]
auto-dismiss = true
nag = "24h"
[[rule]]
name = "Ingestion Failure (Gold)"
message = """At least two rounds of gold ingestion have failed back to back.
See: https://mon.skia.org/dashboard/db/ingestion
"""
database = "skmetrics"
query = "SELECT mean(value) FROM liveness WHERE app='gold_ingestion' AND \"name\"='gold' AND source='poll' AND metric='since-last-run' AND time>now() - 10m"
category = "infra"
conditions = ["x >= 750"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Ignore Monitoring Failure (Gold)"
message = "At least two rounds of monitoring for expired ignore rules have failed back to back."
database = "skmetrics"
query = "select mean(value) from \"liveness\" where \"name\"='gold.expired-ignore-rules-monitoring' AND app='skiacorrectness' AND host='skia-gold-prod' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 200"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Gold Error Rate"
message = "The error rate for Gold is too high."
database = "skmetrics"
query = "select derivative(value, 10m) from \"logs\" WHERE \"name\"='skiacorrectness' AND level='ERROR' AND host='skia-gold-prod' order by time desc limit 1"
category = "infra"
conditions = ["x >= 1"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = false
nag = "1h"
[[rule]]
name = "Gold Ingestion Error Rate"
message = """The error rate for Gold Ingestion is too high.
See: https://mon.skia.org/dashboard/db/ingestion
"""
database = "skmetrics"
query = "SELECT MAX(value) FROM ingestion WHERE ingester='gold' AND \"metric\"='errors' AND source='poll' AND time>now() - 10m"
category = "infra"
conditions = ["x >= 2"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Gold Trybot Ingestion Error Rate"
message = """The error rate for Gold Trybot Ingestion is too high.
See: https://mon.skia.org/dashboard/db/ingestion
"""
database = "skmetrics"
query = "SELECT MAX(value) FROM ingestion WHERE ingester='gold-trybot' AND \"metric\"='errors' AND source='poll' AND time>now() - 10m"
category = "infra"
conditions = ["x >= 2"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "PDF Ingestion Error Rate"
message = "The error rate for PDF Ingestion is too high."
database = "skmetrics"
query = "SELECT MAX(value) FROM ingestion WHERE ingester='pdf' AND \"metric\"='errors' AND source='poll' AND time>now() - 30m"
category = "infra"
conditions = ["x >= 1"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = false
nag = "1h"
#
# Skia Status
#
[[rule]]
name = "Skia Status Latency (JSON endpoint)"
message = "The JSON endpoint at https://status.skia.org/json/skia/commits/ took more than 300ms to respond."
database = "skmetrics"
query = "select mean(value) from \"prober\" where type='latency' AND probename='skiastatus_json' AND time > now() - 10m;"
category = "infra"
conditions = ["x / 1000000 > 300"]
actions = ["Email(infra-alerts@skia.org)", "Email(borenet@google.com)"]
auto-dismiss = true
nag = "1h"
#
# Skia Alerts
#
[[rule]]
name = "Skia Alerts Latency (JSON endpoint)"
message = "The JSON endpoint at https://alerts.skia.org/json/alerts/ took more than 200ms to respond."
database = "skmetrics"
query = "select mean(value) from \"prober\" where type='latency' AND probename='skiaalerts_json' AND time > now() - 10m;"
category = "infra"
conditions = ["x / 1000000 > 200"]
actions = ["Email(infra-alerts@skia.org)", "Email(borenet@google.com)"]
auto-dismiss = true
nag = "1h"
#
# Skia AutoRoll Bot
#
[[rule]]
name = "AutoRoll Failed"
message = "The last DEPS roll attempt for Skia failed."
database = "skmetrics"
query = "select value from \"autoroll.last-roll-result\" where \"child-path\"='src/third_party/skia' order by time desc limit 1"
category = "Skia"
conditions = ["x == 0"]
actions = ["Email(alerts@skia.org)"]
auto-dismiss = true
nag = "2h"
[[rule]]
name = "No AutoRolls Landed for 24h (%(child-path)s)"
message = "The last-landed AutoRoll for %(child-path)s was over 24h ago."
database = "skmetrics"
query = "select value from \"liveness\" where \"name\"='last-autoroll-landed' AND \"child-path\"='src/third_party/skia' order by time desc limit 1"
category = "Skia"
conditions = ["x > 24 * 60 * 60 * 1000000000"]
actions = ["Email(alerts@skia.org)"]
auto-dismiss = true
nag = "2h"
[[rule]]
name = "Skia AutoRoll Latency (JSON endpoint)"
message = "The JSON endpoint at https://autoroll.skia.org/json/status took more than 200ms to respond."
database = "skmetrics"
query = "select mean(value) from \"prober\" where type='latency' AND probename='skiaautoroll_json' AND time > now() - 10m;"
category = "infra"
conditions = ["x / 1000000 > 200"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "AutoRoll Error Rate"
message = "The error rate for autoroll is too high. http://104.154.112.12:10115/file_server/autoroll.ERROR"
database = "skmetrics"
query = "select derivative(value, 10m) from \"logs\" where \"name\"='autoroll' AND level='ERROR' AND host='skia-autoroll' order by time desc limit 1"
category = "infra"
conditions = ["x >= 5"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = false
nag = "1h"
#
# Skia Prober
#
[[rule]]
name = "Probe Failure (probes)"
message = "Probing has failed to run in at least 10 minutes."
database = "skmetrics"
query = "select value from \"liveness\" where \"name\" = 'probes' AND app='probeserver' AND host='skia-monitoring' order by time desc limit 1"
category = "infra"
conditions = ["x >= 600"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Probe Failure (issue-tracker)"
message = "Ingesting issue tracker issued has failed to run in at least 30 minutes."
database = "skmetrics"
query = "select mean(value) from \"liveness\" where \"name\" = 'issue-tracker' AND app='probeserver' AND host='skia-monitoring' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 1800"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
#
# Datahopper
#
[[rule]]
name = "Datahopper Buildbot Ingestion Stalled (client.skia)"
message = "Buildbot Ingestion in Datahopper has failed to run in at least 5 minutes for client.skia."
database = "skmetrics"
query = "select mean(value) from liveness where app='datahopper' AND host='skia-datahopper2' AND \"name\"='buildbot-ingest' AND master='client.skia' AND time > now() - 5m"
category = "infra"
conditions = ["x >= 150"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Datahopper Buildbot Ingestion Stalled (client.skia.android)"
message = "Buildbot Ingestion in Datahopper has failed to run in at least 5 minutes for client.skia.android."
database = "skmetrics"
query = "select mean(value) from liveness where app='datahopper' AND host='skia-datahopper2' AND \"name\"='buildbot-ingest' AND master='client.skia.android' AND time > now() - 5m"
category = "infra"
conditions = ["x >= 150"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Datahopper Buildbot Ingestion Stalled (client.skia.compile)"
message = "Buildbot Ingestion in Datahopper has failed to run in at least 5 minutes for client.skia.compile."
database = "skmetrics"
query = "select mean(value) from liveness where app='datahopper' AND host='skia-datahopper2' AND \"name\"='buildbot-ingest' AND master='client.skia.compile' AND time > now() - 5m"
category = "infra"
conditions = ["x >= 150"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Datahopper Buildbot Ingestion Stalled (client.skia.fyi)"
message = "Buildbot Ingestion in Datahopper has failed to run in at least 5 minutes for client.skia.fyi."
database = "skmetrics"
query = "select mean(value) from liveness where app='datahopper' AND host='skia-datahopper2' AND \"name\"='buildbot-ingest' AND master='client.skia.fyi' AND time > now() - 5m"
category = "infra"
conditions = ["x >= 150"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Datahopper Buildbot Ingestion Too Slow"
message = "Buildbot ingestion time is more than 2 minutes."
database = "skmetrics"
query = "select mean(value) from timer where \"name\"='func-timer' and package='go.skia.org/infra/go/buildbot' and func='ingestNewBuilds' and app='datahopper' AND host='skia-datahopper2' AND time > now() - 5m"
category = "infra"
conditions = ["x >= 120 * 1000 * 1000 * 1000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Datahopper Buildbot Start to Ingestion Latency Too High"
message = "Average time between build start and first ingestion is more than 1 minute."
database = "skmetrics"
query = "select mean(value) from \"buildbot.ingest.latency\" where app='datahopper' AND host='skia-datahopper2' AND master!='client.skia.fake_internal' AND time > now() - 24h"
category = "infra"
conditions = ["x >= 60 * 1000 * 1000 * 1000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "3h"
[[rule]]
name = "Datahopper Error Rate"
message = "The error rate for datahopper is too high. http://104.154.112.116:10115/file_server/datahopper.ERROR"
database = "skmetrics"
query = "select derivative(value, 10m) from \"logs\" where \"name\"='datahopper' AND level='ERROR' AND host='skia-datahopper2' order by time desc limit 1"
category = "infra"
conditions = ["x >= 5"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = false
nag = "1h"
[[rule]]
name = "Buildbot DB backup"
message = "The last buildbot DB backup was more than 25 hours ago."
database = "skmetrics"
query = "select mean(value) from \"liveness\" where app='datahopper' AND host='skia-datahopper2' AND \"name\" = 'last-buildbot-db-backup' AND time > now() - 1h"
category = "infra"
conditions = ["x > 25 * 60 * 60 * 1000 * 1000 * 1000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "6h"
#
# Buildbots
#
[[rule]]
name = "Buildslave %(buildslave)s Disconnected"
message = """Buildslave %(buildslave)s is not connected to %(master)s
Link: https://uberchromegw.corp.google.com/i/%(master)s/buildslaves/%(buildslave)s
Host info: https://status.skia.org/hosts?filter=%(buildslave)s
"""
database = "skmetrics"
query = "select mean(value) from \"buildbot.buildslaves.connected\" where host='skia-datahopper2' AND app='datahopper' AND time > now() - 10m group by buildslave,master"
category = "infra"
conditions = ["x < 1"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Possibly hung buildslave (%(buildslave)s)"
message = """Possibly hung buildslave (%(buildslave)s)
Step "%(step)s" has been running for over 3h:
https://uberchromegw.corp.google.com/i/%(master)s/builders/%(builder)s/builds/%(number)s
Dashboard: https://status.skia.org/buildbots?botGrouping=buildslave&filterBy=buildslave&include=%%5E%(buildslave)s%%24&tab=builds
Host info: https://status.skia.org/hosts?filter=%(buildslave)s"""
database = "skmetrics"
query = "select mean(value) from \"buildbot.buildsteps.running-time\" where builder != 'Housekeeper-Nightly-RecreateSKPs_Canary' AND builder != 'Housekeeper-Weekly-RecreateSKPs' AND builder != 'Linux Builder' AND builder != 'Mac Builder' AND builder != 'Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind' AND builder != 'Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind' AND builder != 'Win Builder' AND step != 'steps' AND step !~ /wait for device/ AND time > now() - 2m group by builder,master,number,buildslave,step"
category = "infra"
conditions = ["x > 3 * 60 * 60 * 1000 * 1000 * 1000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "The Android device for %(buildslave)s appears to be disconnected."
message = """The Android device for %(buildslave)s appears to be disconnected.
Build: https://uberchromegw.corp.google.com/i/%(master)s/builders/%(builder)s/builds/%(number)s
Dashboard: https://status.skia.org/buildbots?botGrouping=buildslave&filterBy=buildslave&include=%%5E%(buildslave)s%%24&tab=builds
Host info: https://status.skia.org/hosts?filter=%(buildslave)s"""
database = "skmetrics"
query = "select mean(value) from \"buildbot.buildsteps.running-time\" where step != 'steps' AND step =~ /wait for device/ AND time > now() - 2m group by builder,master,number,buildslave,step"
category = "infra"
conditions = ["x > 30 * 60 * 1000 * 1000 * 1000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "The Android device for %(buildslave)s has been charging a long time."
message = """The Android device for %(buildslave)s has been charging for longer than 3 hours. Perhaps it has been disconnected or needs a new power hub?
Build: https://uberchromegw.corp.google.com/i/%(master)s/builders/%(builder)s/builds/%(number)s
Dashboard: https://status.skia.org/buildbots?botGrouping=buildslave&filterBy=buildslave&include=%%5E%(buildslave)s%%24&tab=builds
Host info: https://status.skia.org/hosts?filter=%(buildslave)s"""
database = "skmetrics"
query = "select mean(value) from \"buildbot.buildsteps.running-time\" where step != 'steps' AND step =~ /wait for charge/ AND time > now() - 2m group by builder,master,number,buildslave,step"
category = "infra"
conditions = ["x > 180 * 60 * 1000 * 1000 * 1000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "Buildslave %(buildslave)s failure rate too high"
message = """%(buildslave)s has been failing consistently for the past 3 hours.
Link: https://uberchromegw.corp.google.com/i/%(master)s/buildslaves/%(buildslave)s/
Host info: https://status.skia.org/hosts?filter=%(buildslave)s"""
database = "skmetrics"
query = "select mean(value), sum(value) from \"buildbot.builds.failure-status\" where app='datahopper' and host='skia-datahopper2' and time > now() - 3h group by buildslave, master"
category = "infra"
conditions = ["x == 1", "y > 1"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
#
# Buildbot Scheduler
#
[[rule]]
name = "Buildbot Scheduler Failing"
message = "The buildbot scheduler has failed to schedule builds for the last 10 minutes."
database = "skmetrics"
query = "select mean(value) from liveness where app='buildbot_scheduler' and host='skia-build-scheduler' and \"name\"='time-since-last-successful-scheduling' and time > now() - 5m group by app, host"
category = "infra"
conditions = ["x > 10 * 60 * 1000 * 1000 * 1000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
#
# CTFE
#
[[rule]]
name = "CTFE Pending Task Count"
message = "There are a lot of pending tasks. https://ct.skia.org/queue/"
database = "graphite"
query = "select mean(value) from /^num-pending-tasks.value$/ where app='ctfe' AND host='skia-ctfe' AND time > now() - 10m;"
category = "infra"
conditions = ["x >= 100"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "CTFE Pending Task Status"
message = "A task has been waiting to be executed for a while and it's still not started. https://ct.skia.org/queue/"
database = "graphite"
query = "select mean(value) from /^oldest-pending-task-status.value$/ where app='ctfe' AND host='skia-ctfe' AND time > now() - 10m;"
category = "infra"
conditions = ["x >= 2"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "CTFE Last Metrics Update"
message = "No recent update from the CTFE metrics goroutine."
database = "graphite"
query = "select count(value) from /^oldest-pending-task-status.value$/ where app='ctfe' AND host='skia-ctfe' AND time > now() - 10m;"
category = "infra"
conditions = ["x < 1"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "CTFE Number of Goroutines"
message = "There are more goroutines running than expected for CTFE."
database = "graphite"
query = "select mean(value) from /^NumGoroutine.value$/ where app='ctfe' AND host='skia-ctfe' AND time > now() - 10m;"
category = "infra"
conditions = ["x >= 100"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "CTFE Error Rate"
message = "The error rate for CTFE is too high. http://104.154.112.110:10115/ctfe.ERROR"
database = "skmetrics"
query = "select derivative(value, 10m) from \"logs\" where \"name\"='ctfe' AND level='ERROR' AND host='skia-ctfe' order by time desc limit 1"
category = "infra"
conditions = ["x >= 5"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = false
nag = "1h"
[[rule]]
name = "CT Poller Health Check"
message = "CT poller health check is failing. https://uberchromegw.corp.google.com/i/skia-ct-master/poller.ERROR?page_y=end"
database = "graphite"
query = "select mean(value) from /^healthy.value$/ where app='ct-poller' AND host='build101-m5' AND time > now() - 10m;"
category = "infra"
conditions = ["x < 0.01"]
actions = ["Email(infra-alerts@skia.org)", "Email(rmistry@google.com)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "CT Poller Last Metrics Update"
message = "No recent update from the CT Poller metrics goroutine."
database = "graphite"
query = "select count(value) from /^healthy.value$/ where app='ct-poller' AND host='build101-m5' AND time > now() - 10m;"
category = "infra"
conditions = ["x < 1"]
actions = ["Email(infra-alerts@skia.org)", "Email(rmistry@google.com)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "CT Poller Number of Goroutines"
message = "There are more goroutines running than expected for CT poller."
database = "graphite"
query = "select mean(value) from /^NumGoroutine.value$/ where app='ct-poller' AND host='build101-m5' AND time > now() - 10m;"
category = "infra"
conditions = ["x >= 100"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
#
# datahopper_internal (internal.skia.org)
#
[[rule]]
name = "datahopper_internal liveness"
message = "Too long between successful gold Android ingestions."
database = "skmetrics"
query = "select mean(value) from \"liveness\" where \"name\" = 'android-internal-ingest' AND app='datahopper_internal' AND host='skia-internal' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 600"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "datahopper_internal Go routines"
message = "Too many Go routines."
database = "skmetrics"
query = "select mean(value) from \"runtime-metrics\" where \"metric\" = 'num-goroutine' AND app='datahopper_internal' AND host='skia-internal' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 100"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "datahopper_internal ingestBuild metrics"
message = "datahopper_internal goroutine for updateWebhookMetrics is dead or failing."
database = "skmetrics"
query = "select mean(value) from \"liveness\" where \"name\" = 'ingest-build-webhook-oldest-untested-commit-age-metric' AND app='datahopper_internal' AND host='skia-internal' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 600"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "datahopper_internal Google3-Autoroller up-to-date"
message = "Commit has not been picked up by Google3-Autoroller for over two hours."
database = "skmetrics"
query = "select mean(value) from \"datahopper_internal.ingest-build-webhook.oldest-untested-commit-age\" where app='datahopper_internal' AND host='skia-internal' AND codename='Google3-Autoroller' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 7200"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
#
# Fuzzer
#
[[rule]]
name = "fuzzer upload queue"
message = "Fuzzer upload queue has been very full."
database = "skmetrics"
query = "SELECT max(value) from \"fuzzer.queue-size.upload\" WHERE time > now() - 10m AND app='fuzzer-be' AND host='skia-fuzzer'"
category = "infra"
conditions = ["x >= 90"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "fuzzer analysis queue"
message = "Fuzzer analysis queue has been very full."
database = "skmetrics"
query = "SELECT max(value) from \"fuzzer.queue-size.analysis\" WHERE time > now() - 10m AND app='fuzzer-be' AND host='skia-fuzzer'"
category = "infra"
conditions = ["x >= 9000"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "non-useful fuzzer"
message = "The %(category)s generator hasn't made much progress fuzzing. Perhaps it is misconfigured?"
database = "skmetrics"
query = "SELECT max(value) from \"fuzzer.stats.paths-total\" WHERE time > now() - 10m AND app='fuzzer-be' AND host='skia-fuzzer' GROUP BY category"
category = "infra"
conditions = ["x < 20"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
#
# Fiddle
#
[[rule]]
name = "fiddle is failing to build"
message = "Fiddle has failed to build at the last 2 chrome DEPS rolls. https://skia.googlesource.com/buildbot/+/master/fiddle/PROD.md#build_fail"
database = "skmetrics"
query = "SELECT mean(value) FROM \"counter\" WHERE app='fiddle' AND \"name\"='builds-failed' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 2"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"
[[rule]]
name = "fiddle is failing to sync"
message = "Fiddle has failed to sync to HEAD at least 2 times in a row. https://skia.googlesource.com/buildbot/+/master/fiddle/PROD.md#sync_fail"
database = "skmetrics"
query = "SELECT mean(value) FROM \"counter\" WHERE app='fiddle' AND \"name\"='repo-sync-failed' AND time > now() - 10m"
category = "infra"
conditions = ["x >= 2"]
actions = ["Email(infra-alerts@skia.org)"]
auto-dismiss = true
nag = "1h"