September 2024 Summaries
7 posts from Sentry
Filter
Month:
Year:
Post Summaries
Back to Blog
Observability tools are crucial for improving application performance and enhancing user experience. The three pillars of observability - logs, metrics, and tracing - provide insights into an application's internal state, helping developers pinpoint the root cause of issues in real-time. Tracing is emerging as a critical component to having strong debuggability across complex systems like microservices-based architectures. By linking spans (timed operations and requests) across multiple services, tracing enables developers to trace the journey of an end-to-end request through various parts of the system, leading to more resilient and efficient applications. Actionable observability is key to a debuggable system, with platforms focused on debuggability emphasizing context, insights, and tracing for faster issue resolution. Incorporating tracing into the development process empowers frontend teams to deliver faster, more reliable, and user-centric applications, improving overall application performance and health.
Sep 26, 2024
1,559 words in the original blog post.
Hydration errors in React-based applications can be difficult to debug, especially when they occur in production. These errors happen when the markup rendered by React on the client doesn't match the initial server-rendered HTML or when invalid HTML was sent by the server. Sentry, a popular error tracking tool, can help developers debug these issues using its Session Replay feature. By capturing both the server-rendered and client-rendered markup that existed when the error happened, Sentry allows developers to view diffs in visual and raw HTML modes, making it easier to identify discrepancies between the two versions of the HTML. This can be particularly helpful for debugging fake hydration errors caused by invalid HTML.
Sep 25, 2024
1,016 words in the original blog post.
Sentry has implemented strategies to scale its Postgres relational datastore to handle high write throughput by leveraging both vertical and horizontal scaling. The company operates Postgres using typical replication topologies, with applications connecting through a pgbouncer sidecar and each Postgres primary having multiple replicas. To scale horizontally, Sentry employs product area sharding, which allows infrastructure segmentation along product lines and isolation of failure domains, preventing issues in one product from affecting others. This method has enabled Sentry to manage its largest US region with 14 Postgres primaries and facilitated multi-region deployments, such as the EU region, by partitioning Postgres primaries along silo boundaries. The application, built with Django, uses database routers extensively, allowing for effective management of multiple Postgres clusters. Preparing for database splits involves analyzing transactional boundaries and selectively removing foreign key constraints, as seen in the movement of the User model to a control silo. The process includes updating database mappings, reconfiguring connections, and eventually performing physical separation by creating and promoting new Postgres primaries. This approach to sharding by domain has effectively addressed write capacity challenges, with future plans potentially exploring customer-level sharding to further optimize transactional boundaries.
Sep 23, 2024
1,071 words in the original blog post.
Clean Architecture is an approach that organizes code in a way that reduces unnecessary coupling, makes your codebase testable, and most importantly, predictable. It does not eliminate complexity but makes it more manageable. By enforcing a clear separation of concerns across different layers, Clean Architecture not only reduces unnecessary coupling but also makes your codebase more predictable and easier to test. This consistency in the architecture allows for quick identification of error sources based on the type of errors thrown, making debugging easier and less time-consuming. Additionally, its emphasis on testability ensures that every piece of core logic can be covered by tests, reducing the risk of unexpected issues.
Sep 19, 2024
1,501 words in the original blog post.
Debug Hydration Errors with our Diff Tool - Now Generally Available
With our diff tool, developers can quickly identify the differences between client-rendered and server-rendered HTML when hydration occurs in their apps, thereby speeding up debugging and improving web performance. The updated Sentry alerts now account for priority, reducing unnecessary alerts from trivial issues. Our SDKs have been enhanced with new features such as Continuous Profiling, which captures longer-running profiles to aid in finding and fixing issues, and the JavaScript SDK's support for the Long Animation Frames API for performance tracing. Additionally, our tools provide more detailed information on flaky tests, website availability through Uptime Monitoring, and improved code-level visibility.
Sep 18, 2024
247 words in the original blog post.
This guide provides an overview of how to improve the debugging process for React applications. It covers using Chrome DevTools, VS Code, and React Developer Tools for debugging client-side React apps. The text also discusses creating healthy React apps with minimal bugs and maximal performance, identifying common React errors and performance issues, and using Sentry to log React bugs and performance issues in production. Additionally, the guide covers debugging basics, React developer tools, common React performance issues, and React error and performance monitoring using Sentry.
Sep 07, 2024
2,736 words in the original blog post.
Sentry's user feedback widget underwent a significant upgrade to include screenshot and annotation capabilities, a move necessitated by the limitations of its original vanilla JavaScript framework. The team evaluated two lightweight frameworks, Preact and Svelte, to enhance the widget with these features. Preact was chosen due to its similarity to React, which aligns with the team's existing expertise and improves code maintainability, despite Svelte boasting a smaller bundle size. The Preact implementation increased the widget's bundle size by 22.93%, but it facilitated a more readable and maintainable codebase, essential for incorporating future functionalities. The widget, now equipped with screenshotting and cropping capabilities, showcases the benefits of adopting a suitable framework for complex enhancements while maintaining alignment with developer familiarity and project requirements.
Sep 06, 2024
1,083 words in the original blog post.