Four Metrics Every Mobile Developer Should Care About

Slow apps frustrate users, which leads to bad reviews or customers that swipe left to competition. Unfortunately, seeing and solving performance issues can be a time-consuming struggle. 

Most developers use profilers within IDEs like Android Studio or Xcode to hunt for bottlenecks and automated performance tests to catch performance regressions in their code during development. However, testing an application before it ships is not enough.

How to Mutate Data in a System Designed for Immutable Data

In a post published on our blog earlier this year, we described some of the decision-making that went into the design and architecture of Snuba, the primary storage and query service for Sentry’s event data. This project started out of necessity; months earlier, we discovered that the time and effort required to continuously scale our existing PostgreSQL-based solution for indexing event data was becoming an unsustainable burden.

Sentry’s growth led to increased write and read load on our databases, and, even after countless rounds of query and index optimizations, we felt that our databases were always a hair’s breadth from the next performance tipping point or query planner meltdown. Increased write load also led to increased storage requirements (if you’re doing more writes, you’re going to need more places to put them), and we were running what felt like an inordinate number of servers with a lot of disks for the data they were responsible for storing. We knew that something had to change.

How to Manage Continuous Releases With Travis CI and Sentry.io

Here at Sentry, we use Travis CI, a continuous integration tool for GitHub that lets us automate our tests and view the results right within a pull request. In this blog post, we’ll walk through a quick example of how to automatically create Sentry Releases with Travis CI when a commit is pushed to your project’s master branch. 




 


0
 Advanced issue found

1
Monitoring releases with Travis CI


Observability and Beyond — Building Resilient Application Infrastructure

The ability to construct observable apps can't be overstated.

The Journey from Being Reactive to Being Proactive

Things were quite simple in the old days. Proactively monitoring applications or infrastructure was not the norm. If there was a failure, a user would pick up the phone to inform the help-desk that the app is broken.

Troubleshooting was all reactive and the only path to resolution was for someone to roll up their sleeves and go in and look at log files and manually fix errors by themselves.