Repository navigation
v0.20.0
·
13 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Firings recorded elsewhere, kept in the ledger and judged with the rest, past
what the cloud keeps; notifications as they were sent, tied to the firings
they told of; and both told to Slack and the webhook.
- Firings recorded elsewhere, kept in the ledger (docs/design/recorded.md).
With--firings-token-file, the port--incidents-listenopens also takes
PUT /api/v1/firings/SOURCE?from=&to=: a source's firings that start in
the period, one a line as--firingsreads them, in place of those the
ledger had from it then. Sent again as they are, nothing changes or is
judged again. The token is its own: one that copies incidents can't write
firings, and the reverse. They are judged as replayed firings are, and
their rules are named as their sources name them, told apart from another
rule with the name (checkout-5xx [cloudwatch-prod]); a replayed rule
coming later takes the name. A recorded rule's page says where it was
recorded, and that what needs its condition isn't there. Runs leave
recorded firings alone,--keepdrops them and forgets a source not
written since, and a write is 31 days in whole seconds, 16 MB and 100,000
firings at most, with 50 sources. Schema 008:rules.sourceandrules.sent, and
sources. lapilli serveon firings copied in alone. With the firings token,
--rulesand--prometheusare optional: nothing is replayed, and what
comes in is judged as it comes.--impactstill needs--prometheus.- Told to Slack and the webhook. A source nothing has been copied in
from for--source-quiet(default 26h; the chart's
serve.firings.quietAfter) is told of once, assource.quiet, to the
webhook and, with--notify-slack, to Slack. The weekly digest says which
sources firings were copied in from, how many each brought and which has
gone quiet, and what the notifications sent came to (how many, repeats,
while people slept, for nothing, the rules that sent the most for
nothing); a team's digest, for its rules. The webhook'sdigest.ready
carries both assourcesandnotifications. recipes/firings/put.shsends a recipe's output as a source's firings for
SINCEtoUNTIL. The runs page lists the sources,/api/v1/sources
has them, and/metricshaslapilli_serve_source_last_timestamp_seconds
andlapilli_serve_source_firingsby source. The chart takes
serve.firings.tokenSecret, withrulesandprometheusoptional then.- Notifications as they were sent.
lapilli serve --notify-listen ADDR
opens a port that takes notifications, and nothing else, a path for each
source:/v1/alertmanager(a webhook, with the token in
--notify-token-fileas its bearer token),/v1/grafana(a webhook
contact point, with the token or its HMAC signature with the secret in
--notify-grafana-secret-file),/v1/sns(Amazon SNS's signature, from a
topic--notify-snsnames, for Amazon Managed Service for Prometheus; the
subscription is confirmed at an SNS host only),/v1/azure(an action
group's webhook, common alert schema, the token as the URL's password) and
/v1/google(a Cloud Monitoring webhook channel, basic auth after a 401).
Each alert is tied to its rule's firing whose labels are all among its own,
started within two evaluations; a notification the same as one from
another replica within a minute is kept once; repeats are as the source
says, or the same alerts again with nothing new and nothing resolved. Rule
pages and the rules list show notifications, repeats, those while people
slept and those for nothing, by receiver; firings, how many told of each,
or that one paged no one; the dashboard's "Woken for nothing" counts
notifications once there are any.lapilli_rule_notifications{rule, receiver, reason}in/metrics, and in MCP'srulesandrule. Schema
009. The chart'sserve.notificationsAPI.