Urgent.News

What's breaking now, across thousands of outlets.

Tech

One new label multiplied our metrics by every order we take

On a Friday afternoon a colleague added a label to a counter so he could follow one customer's orders through a queue. The label was the order id. It went through review in four minutes, because it was three characters of change and the reasoning behind it was good. By Sunday evening our metrics server was restarting in a loop, and on Monday morning, in the middle of a genuine payments incident,…

A single label transformed the team's metrics exponentially with every order processed. This label, an order id, went through a review process in just four minutes due to its brevity and sound reasoning. On Sunday evening, the metrics server began restarting in a loop, leading to a complete lack of monitoring on Monday morning during a real payments incident.

Each label is a unique dimension, with its own time series and memory-resident index. With sixty thousand order ids generated daily, the number of series skyrocketed from one point one million to fourteen million in under three days. The failure was not clean, as ingestion slowed, alerts arrived late, and some evaluation cycles were skipped.

The system killed itself for memory, replayed its write-ahead log, and was killed again. To mitigate the issue, the label was removed from the scrape using a relabel rule. The guards were then deployed, with each service having a series budget and a rule that triggered at eighty percent of it. The incident was quickly identified through a panel showing the top metric names by series count.

The lesson learned was that while an identifier might seem reasonable, it should be placed on a trace or an exemplar attached to a bucket, as it multiplies across every dimension and incurs significant memory usage.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Project LifeOps (Part 5): 24/7 Zero-Cost Cloud Deployment ($0/month), Mobile Optimization, and PWA

We have arrived at the grand finale of our engineering series. Across the four previous installments, we designed the database architecture and FastAPI backend , crafted the Glassmorphism Dark Mode…

  • Production-ready cloud topology with $0/month cloud free tiers
  • Mobile-optimized Progressive Web App accessible via https://datalaria.com/apps/lifeops/
  • Backend built with FastAPI + Uvicorn, JWT bearer tokens, and Supabase Cloud PostgreSQL

I tried to check if our new blockchain tools were being used. The tool that would have told me was also silently broken — and so were two other things.

The tool I built to check if anyone used our API was itself silently broken — and so were two other things security #cloudflare #webdev #serverless Yesterday I shipped three new endpoints (a Cosmos…

  • Three new blockchain tools deployed, including Cosmos SDK decoder and EVM sanctions checker
  • Four separate bugs caused by silent failures, requiring manual checks to detect

The configuration we changed in June arrived one pod at a time in August

A support ticket said our dispatch emails were going out twice. Not always, not to any customer we could pick out, and never while we watched.

  • Configuration change from ten to two minutes occurred in June
  • Node pool upgrade in August caused mixed lease durations
  • Annotation and metric implementation resolved configuration issue

More from Saturday 19 September →