Operations | Monitoring | ITSM | DevOps | Cloud

How a beagle-shaped AI agent ships code to madewithvuejs.com

This is a guest post from Armin Ulrich, a fullstack developer, and founder of placid.app. He also created the MadeWith* network where he shares his projects and allows other developers to share theirs. Two people and one beagle run the project showcase madewithvuejs.com. The beagle is actually an AI agent that we have added to our workflows, but we’re very fond of her by now. Milly is part of the team, scouting for content, building features and sniffing for bugs.

Should you use a log or a metric?

Since Sentry added Logs and Application Metrics, there are now two ways to record that something happened in your app, and they can look pretty similar: Sentry.logger.info("user.signup") versus Sentry.metrics.count("user.signup"). Both store attributes, both include shared context automatically, and both can be filtered, grouped, and counted. So when you’re instrumenting your code, which one do you reach for?

We just gave a million dollars to Open Source maintainers

The title is not a joke. For those of you who know Sentry, you know we’ve been giving back to Open Source maintainers since our early days in whatever ways we could. But around five years ago we really started to give in a more meaningful way. This year we increased our budget from $750,000 to $1,000,000.

Sentry's Flutter SDK 10.0: Streaming Traces and More Accurate Crash-Free Rates

Sentry’s Flutter SDK 10.0 makes streaming traces the default and changes how unhandled Flutter errors affect Release Health. Errors that leave your app running no longer mark the session as crashed, so your crash-free rate better reflects actual app crashes. The release also gives app startup its own trace on Android and iOS, simplifies logs and metrics setup, expands Dio network error capture, and respects Flutter’s sensitive-content markings in Replay and screenshots.

Sentry JavaScript SDK v11 adds tracing for all JS platforms

This post is about a recent change to the Sentry JavaScript SDKs. If you don’t use Sentry with JavaScript, it may still be useful as a look at how we made the change and why. In the Sentry JavaScript SDK v11, we rebuilt how our tracing integrations work. While we still support the OpenTelemetry standard (described in more detail below), we now instrument your dependencies with a code transformer instead of using the OpenTelemetry instrumentation classes as we did in previous versions.

Fixing 3 issues with one distributed trace

Use Sentry tracing to investigate three different problems in one shopping flow: an N+1 query, an expired promo-code warning, and a checkout exception. The entire shopping flow happens through the agent conversation on Empower Plant’s homepage: a search for plants under $200, adding one of each to the cart, starting checkout, applying SAVE20, then attempting to place the order. The trace connects that flow to repeated database queries and an N+1 issue, a warning that SAVE20 has expired, and a checkout exception with its inventory-validation stack trace.

Reducing Android scope-sync overhead in Sentry Flutter

Our SDK adds work to the app that installs it. It records recent app activity as breadcrumbs and keeps user information and other diagnostic data up to date. Changes to that information are called scope updates. On Android, we send those updates to a worker isolate, which passes them to the Sentry Android SDK. We found that the calling isolate and the worker both normalized the same data. The encoding step also created a JSON string and an extra byte buffer that we could avoid.

Searching Sentry Logs with Regex

We use Sentry's new Regex search for Logs to hunt for non-obvious bugs in our app. What do you do when traces show that Postgres jobs are backing up? Logs are trace-connected, so by looking at one of the affected traces, we can see all of the logs on that trace. In there, we can see Postgres has logged that it acquired a lock only after a long wait. Using regex, we can find all of these logs that describe acquiring a lock after a 10-second-plus wait. That narrows our search from thousands or hundreds of logs down to about a dozen.