Using Sentry for Error Tracking: Practical Examples

Explore practical examples of using Sentry for effective error tracking in your applications.
By Jamie

Introduction to Sentry for Error Tracking

Sentry is a powerful error tracking tool that helps developers monitor and fix crashes in real time. By integrating Sentry into your application, you can capture exceptions, track performance issues, and gain insights into your application’s health. Below are three diverse examples demonstrating how to use Sentry effectively for error tracking in different application contexts.

Example 1: Integrating Sentry in a Python Web Application

In a Python-based web application using Flask, you may encounter unhandled exceptions that disrupt user experience. Integrating Sentry enables you to capture these errors effectively.

To start, install the Sentry SDK:

pip install --upgrade sentry-sdk

Next, initialize Sentry in your application:

import sentry_sdk
from flask import Flask, request

sentry_sdk.init(
    dsn="YOUR_SENTRY_DSN",  # Replace with your DSN
    traces_sample_rate=1.0,  # Adjust as necessary
)

app = Flask(__name__)

@app.route('/divide')
def divide():
    num1 = int(request.args.get('num1'))
    num2 = int(request.args.get('num2'))
    return str(num1 / num2)

if __name__ == '__main__':
    app.run()

With this setup, if a user tries to access the /divide route with num2 set to 0, Sentry will automatically capture the division by zero error and report it to your Sentry dashboard. You’ll receive detailed information, including stack traces, user context, and even breadcrumbs leading to the error.

Notes: Ensure you replace YOUR_SENTRY_DSN with your actual DSN from the Sentry project settings. You can also customize the traces_sample_rate to control the volume of performance data sent to Sentry.

Example 2: Using Sentry in a React Frontend Application

In a React application, uncaught errors during rendering can lead to a poor user experience. By integrating Sentry, you can capture these errors and track issues more effectively.

First, install the Sentry SDK for React:

npm install --save @sentry/react @sentry/tracing

Then, initialize Sentry in your main application file:

import React from 'react';
import ReactDOM from 'react-dom';
import * as Sentry from '@sentry/react';
import App from './App';

Sentry.init({
  dsn: 'YOUR_SENTRY_DSN',  // Replace with your DSN
  integrations: [
    new Sentry.BrowserTracing(),
  ],
  tracesSampleRate: 1.0,
});

ReactDOM.render(<App />, document.getElementById('root'));

With this setup, any runtime errors in your React components will be captured and sent to Sentry. For instance, if a component tries to access a property of undefined, Sentry will log this error, making it easy for you to diagnose and rectify the issue.

Notes: Adjust the tracesSampleRate based on your needs to optimize performance and data volume. You can also add additional context to the errors captured using Sentry’s API.

Example 3: Monitoring Errors in a Node.js Microservice

In a Node.js microservice architecture, catching errors across various services is crucial for maintaining system reliability. Integrating Sentry allows for centralized error tracking across different microservices.

Begin by installing the Sentry SDK for Node.js:

npm install --save @sentry/node

Next, set up Sentry in your service:

const express = require('express');
const Sentry = require('@sentry/node');

const app = express();

Sentry.init({
  dsn: 'YOUR_SENTRY_DSN',  // Replace with your DSN
});

app.use(Sentry.Handlers.requestHandler());

app.get('/api/resource', (req, res) => {
    // Simulating an error
    throw new Error('Resource not found');
});

app.use(Sentry.Handlers.errorHandler());

const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server running on port ${port}`);
});

In this example, any unhandled errors occurring in the /api/resource endpoint will be captured by Sentry, allowing you to monitor issues across your microservices seamlessly.

Notes: Make sure to replace YOUR_SENTRY_DSN with the correct DSN for your project. Sentry will also provide performance monitoring capabilities, giving you insights into the service’s response times and bottlenecks.