Skip to content

Version 1.2.0 - New Relic Monitoring & Observability

Choose a tag to compare

@willwillis willwillis released this 25 Jul 02:37
· 44 commits to main since this release

Version 1.2.0 - New Relic Monitoring & Observability

🎯 New Features

Application Performance Monitoring (APM)

  • Backend APM: Full New Relic APM integration for FastAPI backend
  • Frontend RUM: Real User Monitoring for React frontend
  • Distributed Tracing: End-to-end request tracing across frontend and backend
  • Custom Metrics: Business-specific metrics for scripture usage patterns

Observability Enhancements

  • Error Tracking: Comprehensive error monitoring and alerting
  • Performance Monitoring: Response time tracking and optimization insights
  • User Experience Metrics: Frontend performance and user interaction tracking
  • Database Monitoring: SQLite query performance and connection health

πŸ”§ Technical Implementation

Backend Monitoring (FastAPI)

  • New Relic Agent: Python agent integration with explicit initialization
  • Package Management: Updated to use uv for dependency management
  • Environment Configuration: New Relic license key and app name configuration
  • Health Check Enhancement: Database warm-up and connection verification

Frontend Monitoring (React)

  • Browser Agent: New Relic Browser RUM agent integration
  • Custom Events: Track user interactions and feature usage
  • Performance Metrics: Core Web Vitals and page load performance
  • Error Boundaries: React error boundary integration for error tracking

Synthetic Monitoring

  • GitHub Actions: Automated monitoring with 15-minute intervals
  • Warm-up Strategy: 5-minute warm-up period to handle Render cold starts
  • Health Checks: Comprehensive endpoint testing and validation
  • Performance Tracking: Response time monitoring and alerting

πŸ“Š Monitoring Features

Backend Metrics

  • API Response Times: p50, p95, p99 percentile tracking
  • Database Performance: Query execution times and connection health
  • Error Rates: Endpoint-specific error tracking and alerting
  • Request Volume: Traffic patterns and usage analytics

Frontend Metrics

  • Page Load Performance: Core Web Vitals (LCP, FID, CLS)
  • User Interactions: Scripture reading, search, and navigation patterns
  • Error Tracking: JavaScript errors and React component failures
  • Custom Events: Feature usage and user journey tracking

Business Intelligence

  • Scripture Usage: Most popular books, chapters, and search terms
  • User Behavior: Reading patterns and feature adoption
  • Performance Impact: Cold start effects and optimization opportunities
  • Reliability Metrics: Uptime and error rate tracking

πŸš€ Deployment & Configuration

Environment Variables

  • Backend (Render):

    • NEW_RELIC_LICENSE_KEY: New Relic license key
    • NEW_RELIC_APP_NAME: "Fast Scriptures Backend"
    • NEW_RELIC_DISTRIBUTED_TRACING_ENABLED: "true"
    • NEW_RELIC_LOG_ENABLED: "true"
  • Frontend (Render):

    • VITE_API_URL: Backend API URL
    • New Relic Browser agent configuration in index.html

Package Updates

  • Backend: Added newrelic>=10.15.0 to pyproject.toml
  • Frontend: New Relic Browser agent script in index.html
  • Dependencies: Updated to use uv for Python package management

πŸ“ˆ Observability Benefits

Performance Insights

  • Cold Start Detection: Monitor Render's cold start impact on performance
  • Response Time Optimization: Identify slow endpoints and optimize queries
  • User Experience: Track frontend performance and user satisfaction
  • Resource Utilization: Monitor memory and CPU usage patterns

Operational Excellence

  • Proactive Monitoring: Early detection of performance degradation
  • Error Alerting: Immediate notification of application failures
  • Capacity Planning: Traffic pattern analysis for scaling decisions
  • Debugging Support: Detailed traces for troubleshooting issues

Business Intelligence

  • Feature Usage: Track which scripture features are most popular
  • User Engagement: Monitor reading patterns and session duration
  • Search Analytics: Understand user search behavior and preferences
  • Performance Impact: Correlate performance with user satisfaction

πŸ”„ Migration & Setup

Backend Setup

  1. Add Environment Variables: Configure New Relic license key and app name in Render
  2. Redeploy: Trigger new deployment to activate New Relic agent
  3. Verify Integration: Check New Relic dashboard for agent connectivity
  4. Monitor Performance: Review initial metrics and traces

Frontend Setup

  1. Browser Agent: New Relic Browser agent automatically loads from index.html
  2. Custom Events: Implement custom event tracking for user interactions
  3. Error Boundaries: React error boundaries capture and report errors
  4. Performance Monitoring: Core Web Vitals automatically tracked

Synthetic Monitoring

  1. GitHub Actions: Automated monitoring runs every 15 minutes
  2. Warm-up Strategy: 5-minute warm-up period handles cold starts
  3. Health Checks: Comprehensive endpoint testing and validation
  4. Alerting: Configure alerts for performance degradation

πŸ“‹ Monitoring Checklist

Backend Monitoring

  • New Relic APM agent integration
  • Environment variable configuration
  • Health check endpoint enhancement
  • Database connection monitoring
  • API endpoint performance tracking
  • Error rate monitoring

Frontend Monitoring

  • New Relic Browser RUM agent
  • Custom event tracking
  • Error boundary integration
  • Performance metrics collection
  • User interaction tracking
  • Core Web Vitals monitoring

Synthetic Monitoring

  • GitHub Actions workflow
  • Warm-up strategy implementation
  • Health check automation
  • Performance baseline establishment
  • Alert configuration

🎯 Next Steps

Phase 2: Advanced Observability

  • Custom Dashboards: Create business-specific monitoring dashboards
  • Alerting Rules: Configure intelligent alerting based on business metrics
  • Performance Budgets: Set and monitor performance budgets
  • User Journey Tracking: End-to-end user experience monitoring

Phase 3: SRE Practices

  • SLI/SLO Definition: Define service level indicators and objectives
  • Error Budget Tracking: Monitor and manage error budgets
  • Incident Response: Automated incident detection and response
  • Capacity Planning: Data-driven scaling decisions

Breaking Changes

  • None - all monitoring features are additive and non-breaking

Migration Notes

  • New Relic integration requires environment variable configuration
  • Existing functionality remains unchanged
  • Monitoring data collection begins immediately after deployment
  • No user-facing changes or API modifications

Technical Details

  • Backend: New Relic Python agent v10.15.0+ with explicit initialization
  • Frontend: New Relic Browser agent with custom event tracking
  • Synthetic: GitHub Actions with 15-minute monitoring intervals
  • Database: Enhanced health checks with warm-up verification
  • Deployment: Render environment variable configuration required

Release Date: January 2025
Version: 1.2.0
Status: Production Ready with Monitoring