Sentry — τι είναι, αρχές και συλλογή σφαλμάτων

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-05-29 Χρόνος ανάγνωσης: 8 λεπ

Το Sentry είναι μια πλατφόρμα για την παρακολούθηση σφαλμάτων και την παρακολούθηση της απόδοσης εφαρμογών σε πραγματικό χρόνο, παρέχοντας στους προγραμματιστές πλήρες πλαίσιο για κάθε αποτυχία. Σύμφωνα με το Sentry Documentation, 2025, το Sentry επεξεργάζεται πάνω από 10 δισεκατομμύρια γεγονότα ημερησίως, παρέχοντας ενσωμάτωση με 90+ γλώσσες και framework για iOS, Android, web και backend.

Κύρια σημεία

  • Sentry — πλατφόρμα παρακολούθησης σφαλμάτων και απόδοσης ανοιχτού κώδικα που υποστηρίζει 90+ γλώσσες και πλατφόρμες.
  • Error events — αυτόματη συλλογή εξαιρέσεων με πλήρες stacktrace, τιμές μεταβλητών και κατάσταση συσκευής.
  • Breadcrumbs — ακολουθία ενεργειών χρήστη και συστημικών γεγονότων που προηγούνται του σφάλματος.
  • Source maps — αποσυμπίεση ελαχιστοποιημένου κώδικα για επαναφορά αναγνώσιμης στοίβας κλήσεων σε παραγωγή.
  • Performance Tracing — παρακολούθηση χρόνου εκτέλεσης συναλλαγών με distributed tracing μέσω όλων των υπηρεσιών.

Τι είναι το Sentry στην ανάπτυξη

Sentry είναι μια πλατφόρμα ανοιχτού κώδικα για αναφορά σφαλμάτων και παρακολούθηση απόδοσης, που ιδρύθηκε το 2012. Επιτρέπει στους προγραμματιστές να λαμβάνουν ειδοποιήσεις σφαλμάτων σε πραγματικό χρόνο με πλήρες διαγνωστικό πλαίσιο: στοίβα κλήσεων, τιμές μεταβλητών τη στιγμή της αποτυχίας, ακολουθία ενεργειών χρήστη πριν από το σφάλμα και κατάσταση περιβάλλοντος.

Σε αντίθεση με τις συγκεντρωτικές υπηρεσίες αναφοράς σφαλμάτων (Google Play Console, App Store Connect) που παρέχουν μόνο στατιστικά και βασικά γραφήματα, το Sentry εμφανίζει κάθε γεγονός ξεχωριστά με δυνατότητα ομαδοποίησης ανά τύπο σφάλματος και φιλτραρίσματος ανά έκδοση εφαρμογής. Issue στο Sentry είναι μια ομάδα γεγονότων με το ίδιο stacktrace, που επιτρέπει να μην πνιγόμαστε σε χιλιάδες πανομοιότυπες συντριβές, αλλά να εστιάζουμε στην εξάλειψη της βασικής αιτίας με πλήρες πλαίσιο.

Σύμφωνα με το Sentry (2025), ο μέσος χρόνος ανίχνευσης σφάλματος μειώνεται από 30 λεπτά σε 30 δευτερόλεπτα μετά την εφαρμογή του Sentry SDK, και ο χρόνος διάγνωσης κατά 60% χάρη στα αυτόματα breadcrumbs και το πλαίσιο περιβάλλοντος. Η πλατφόρμα χρησιμοποιείται από περισσότερους από 100.000 οργανισμούς παγκοσμίως, συμπεριλαμβανομένων των Airbnb, Microsoft, Instagram και PayPal, επεξεργαζόμενη δισεκατομμύρια γεγονότα καθημερινά.

Αρχιτεκτονική Sentry: SDK, Relay και επεξεργασία γεγονότων

Το σύστημα Sentry αποτελείται από τρία κύρια στοιχεία: SDK στην πλευρά της εφαρμογής, Relay (διακομιστής μεσολάβησης) και backend επεξεργασίας γεγονότων. Sentry SDK είναι μια βιβλιοθήκη που ενσωματώνεται στην εφαρμογή, συλλαμβάνει εξαιρέσεις, συλλέγει πλαίσιο και στέλνει γεγονότα στο Relay μέσω πρωτοκόλλου JSON/HTTPS.

Sentry Relay

Relay είναι ένας ενδιάμεσος διακομιστής που μπορεί να αναπτυχθεί στην υποδομή της εταιρείας. Λαμβάνει γεγονότα από το SDK, φιλτράρει σύμφωνα με κανόνες (δεδομένα PII, περιττά γεγονότα), αποθηκεύει προσωρινά και προωθεί στο Sentry SaaS ή σε δική του παρουσία. Το Relay εξασφαλίζει χαμηλή καθυστέρηση αποστολής — τυπικός χρόνος λήψης γεγονότος είναι 500–1500 ms.

Inbound Data Filter

Το Sentry παρέχει ενσωματωμένα φίλτρα για απόρριψη ανεπιθύμητων γεγονότων χωρίς αποστολή τους στον διακομιστή: σφάλματα από δοκιμαστικά περιβάλλοντα, σφάλματα από παλιές εκδόσεις εφαρμογής, επαναλαμβανόμενα γεγονότα με ίδιο fingerprint. Filtering εξοικονομεί έως και 70% του όγκου δεδομένων σε ένα τυπικό έργο παραγωγής, μειώνοντας το κόστος κατανάλωσης και το φορτίο του καναλιού επικοινωνίας της συσκευής.

Ρύθμιση Sentry SDK για iOS και Android

Η εγκατάσταση του Sentry SDK για κινητές πλατφόρμες διαρκεί 5–10 λεπτά και απαιτεί προσθήκη εξάρτησης και αρχικοποίηση με κλειδί DSN. DSN (Data Source Name) είναι το μοναδικό αναγνωριστικό του έργου στο Sentry που υποδεικνύει πού να στέλνονται τα γεγονότα.

Ρύθμιση σε Android

Για Android, το Sentry παρέχει αυτόματη ενόργανη μέτρηση μέσω του πρόσθετου Gradle. Το πρόσθετο τροποποιεί τον bytecode στο στάδιο μεταγλώττισης, προσθέτοντας περιτυλίγματα για όλες τις Activity, Fragment και κλήσεις δικτύου. Auto-instrumentation ενεργοποιείται με μία επιλογή στο build.gradle και επιτρέπει τη λήψη breadcrumbs από τον κύκλο ζωής της εφαρμογής χωρίς αλλαγή κώδικα.

kotlin
import io.sentry.Sentry

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        Sentry.init { options ->
            options.dsn = "https://example@sentry.io/project"
            options.tracesSampleRate = 0.2
            options.enableAutoSessionTracking = true
        }
    }
}

Ο κώδικας αρχικοποιεί το Sentry SDK σε εφαρμογή Android. Η παράμετρος tracesSampleRate = 0.2 ενεργοποιεί το performance tracing για το 20% των συνεδριών, το enableAutoSessionTracking δημιουργεί αυτόματα συνεδρίες για κάθε εκκίνηση της εφαρμογής.

Ρύθμιση σε iOS

Το SDK για iOS υποστηρίζει CocoaPods, Swift Package Manager και Carthage. Μετά την εγκατάσταση, το SDK συλλαμβάνει αυτόματα NSException, σήματα (SIGABRT, SIGSEGV) και σφάλματα Swift. Sentry Cocoa SDK είναι συμβατό με iOS 12+ και macOS 10.13+, υποστηρίζει Swift Concurrency (async/await) και αυτόματη ενόργανη μέτρηση URLSession.

swift
import Sentry

class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        SentrySDK.start { options in
            options.dsn = "https://example@sentry.io/project"
            options.enableAutoPerformanceTracing = true
        }
        return true
    }
}

Ο κώδικας σε Swift ενεργοποιεί το Sentry SDK με αυτόματη συλλογή μετρικών απόδοσης. Το enableAutoPerformanceTracing ενεργοποιεί την παρακολούθηση χρόνου φόρτωσης οθονών και αιτημάτων HTTP χωρίς επιπλέον κώδικα.

Breadcrumbs είναι η χρονολογική ακολουθία γεγονότων που προηγούνται του σφάλματος. Το Sentry καταγράφει αυτόματα breadcrumbs για κλικ κουμπιών, μεταβάσεις μεταξύ οθονών, αιτήματα HTTP και συστημικές ειδοποιήσεις. Ο προγραμματιστής μπορεί να προσθέσει προσαρμοσμένα breadcrumbs για επιχειρηματική λογική.

Κάθε breadcrumb περιέχει χρονική σήμανση, τύπο γεγονότος (navigation, http, ui, error), κατηγορία και αυθαίρετα δεδομένα. Όταν συμβεί σφάλμα, όλα τα breadcrumbs των τελευταίων 2–5 λεπτών (ρυθμίσιμο) επισυνάπτονται στο γεγονός. Αυτό το πλαίσιο είναι συχνά πιο σημαντικό από το ίδιο το stacktrace: ο προγραμματιστής βλέπει ότι ο χρήστης έκανε κλικ στο «Πληρωμή» μετά την επιλογή προϊόντος και μόνο τότε συνέβη η συντριβή. Ο μέγιστος αριθμός breadcrumbs από προεπιλογή είναι 200, μετά τον οποίο οι παλαιότερες εγγραφές διαγράφονται αυτόματα.

kotlin
Sentry.addBreadcrumb(
    Breadcrumb().apply {
        category = "payment"
        message = "User tapped Pay button"
        type = "user"
        level = BreadcrumbLevel.INFO
        data["amount"] = "19.99"
        data["currency"] = "USD"
    }
)

Ο κώδικας προσθέτει ένα προσαρμοσμένο breadcrumb για ενέργεια χρήστη σε σενάριο πληρωμής. Εάν μετά από αυτή την ενέργεια συμβεί σφάλμα, ο προγραμματιστής θα δει στο Sentry ότι ο χρήστης έκανε κλικ στο «Pay» με ποσό 19.99 USD, που επιτρέπει τον γρήγορο εντοπισμό του προβλήματος στη ροή πληρωμής.

User context

Το Sentry επιτρέπει την επισύναψη πληροφοριών χρήστη στα γεγονότα: ID, όνομα χρήστη, email. User context μεταδίδεται αυτόματα με όλα τα γεγονότα από μία συνεδρία, επιτρέποντας την ομαδοποίηση σφαλμάτων ανά χρήστη και τον προσδιορισμό του πόσοι χρήστες επηρεάστηκαν από ένα συγκεκριμένο σφάλμα. Είναι σημαντικό να τηρείται η πολιτική απορρήτου και να μην μεταδίδονται προσωπικά δεδομένα εάν δεν επιτρέπεται από την πολιτική της εφαρμογής.

Source maps και σύμβολα εντοπισμού σφαλμάτων

Στις εκδόσεις παραγωγής iOS και Android, ο κώδικας είναι συνήθως ελαχιστοποιημένος ή συγκεχυμένος. Χωρίς επεξεργασία, η στοίβα σφάλματος θα περιέχει ακατανόητα ονόματα όπως «a.b()» αντί για «UserViewModel.fetchData()». Source maps (JavaScript) και debug symbols (dSYM για iOS, ProGuard mapping για Android) επαναφέρουν την αναγνώσιμη στοίβα.

Για Android, το Sentry ανεβάζει αυτόματα τα αρχεία ProGuard mapping μέσω του πρόσθετου Gradle κατά τη δημιουργία έκδοσης release. Για iOS απαιτείται μεταφόρτωση αρχείων dSYM — το Sentry παρέχει σενάριο για αυτόματη μεταφόρτωση στο στάδιο αρχειοθέτησης. Χωρίς σύμβολα εντοπισμού σφαλμάτων, η στοίβα σφάλματος στο Sentry θα είναι άχρηστη για τον προγραμματιστή, επομένως η διαδικασία μεταφόρτωσής τους πρέπει να είναι υποχρεωτικό βήμα στο pipeline CI/CD.

Παρακολούθηση απόδοσης μέσω Sentry

Από την έκδοση 2020, το Sentry περιλαμβάνει παρακολούθηση απόδοσης — συλλογή μετρήσεων χρόνου εκτέλεσης συναλλαγών με distributed tracing. Transaction στο Sentry είναι μια μετρήσιμη μονάδα εργασίας: φόρτωση οθόνης, εκτέλεση αιτήματος API, επεξεργασία εργασίας παρασκηνίου. Κάθε συναλλαγή περιέχει θυγατρικά span που δείχνουν ποια βήματα πήραν τον περισσότερο χρόνο.

Η παρακολούθηση απόδοσης στο Sentry είναι ενσωματωμένη με την παρακολούθηση σφαλμάτων: εάν μια συναλλαγή τελειώσει με σφάλμα, το αντίστοιχο span επισημαίνεται με κατάσταση «error» και ο προγραμματιστής μπορεί να μεταβεί από τη μέτρηση απόδοσης στις λεπτομέρειες της εξαίρεσης. Trace ID συνδέει όλα τα γεγονότα (σφάλματα, συναλλαγές, breadcrumbs) σε μία ενιαία συνεδρία για ολοκληρωμένη ανάλυση, παρέχοντας απρόσκοπτη μετάβαση μεταξύ των καρτελών Issues και Performance στο ενιαίο ταμπλό της πλατφόρμας Sentry.

Σύμφωνα με το Sentry Performance Benchmark (2024), μια εφαρμογή με ενεργοποιημένη παρακολούθηση απόδοσης (συχνότητα δειγματοληψίας 10%) καταναλώνει 2–5% περισσότερη κίνηση και 1–2% περισσότερους πόρους CPU στη συσκευή. Αυτό το φορτίο αντισταθμίζεται από τη μείωση του χρόνου διάγνωσης απόδοσης κατά 70% σε σύγκριση με τη μη αυτόματη δημιουργία προφίλ.

Συχνές ερωτήσεις

Σε τι διαφέρει το Sentry από το Firebase Crashlytics;

Sentry παρέχει περισσότερο πλαίσιο: breadcrumbs, προσαρμοσμένα δεδομένα, σύνδεση σφαλμάτων με απόδοση. Το Firebase Crashlytics είναι ένα δωρεάν εργαλείο με βασική αναφορά σφαλμάτων, αλλά χωρίς distributed tracing και χωρίς δυνατότητα προσαρμοσμένης ενόργανης μέτρησης breadcrumbs. Το Sentry είναι κατάλληλο για έργα που χρειάζονται βαθιά διάγνωση.

Πόσο κοστίζει το Sentry για εφαρμογή κινητού;

Το Sentry προσφέρει δωρεάν πρόγραμμα για 5.000 γεγονότα το μήνα (σφάλματα + συναλλαγές). Το πρόγραμμα επί πληρωμή Team κοστίζει 26 δολάρια ανά χρήστη το μήνα και περιλαμβάνει 100.000 γεγονότα. Για μεγάλα έργα, διατίθεται το πρόγραμμα Business με απεριόριστο όγκο και ατομική τιμή.

Πώς επεξεργάζεται το Sentry προσωπικά δεδομένα σε σφάλματα;

Το Sentry παρέχει ενσωματωμένο μηχανισμό Data Scrubbing: αυτόματη αφαίρεση email, διευθύνσεων IP, πιστωτικών καρτών και άλλων δεδομένων PII από γεγονότα πριν από την αποθήκευση. Οι κανόνες scrubbing διαμορφώνονται στη διεπαφή ιστού ή στη διαμόρφωση Relay με υποστήριξη κανονικών εκφράσεων. Συνιστάται η ενεργοποίηση scrubbing σε επίπεδο SDK, ώστε τα εμπιστευτικά δεδομένα να μην εγκαταλείπουν τη συσκευή του χρήστη.

Μπορεί το Sentry να εκτελεστεί σε δικούς μου διακομιστές;

Ναι, το Sentry διαθέτει πλήρως ανοιχτού κώδικα έκδοση αυτο-φιλοξενίας. Self-hosted Sentry αναπτύσσεται μέσω Docker Compose και περιλαμβάνει όλες τις λειτουργίες της έκδοσης SaaS. Απαιτείται ελάχιστη διαμόρφωση διακομιστή: 4 vCPU, 16 GB RAM, 100 GB χώρου δίσκου για αποθήκευση γεγονότων.

Υποστηρίζει το Sentry SwiftUI και Jetpack Compose;

Ναι, το Sentry SDK υποστηρίζει πλήρως SwiftUI (iOS 13+) και Jetpack Compose (Android). Για SwiftUI, το SDK δημιουργεί αυτόματα συναλλαγές για NavigationView και List με μέτρηση χρόνου απόδοσης. Για Jetpack Compose, απαιτείται προσαρμοσμένη ενσωμάτωση μέσω CompositionLocalProvider για μεταφορά του πλαισίου Sentry στα Composables.

Σύνοψη

  • Sentry — πλατφόρμα παρακολούθησης σφαλμάτων και απόδοσης ανοιχτού κώδικα που χρησιμοποιείται από περισσότερους από 100.000 οργανισμούς.
  • Αρχιτεκτονική περιλαμβάνει SDK στη συσκευή, διακομιστή μεσολάβησης Relay και backend επεξεργασίας γεγονότων με υποστήριξη ανάπτυξης self-hosted και SaaS.
  • Breadcrumbs παρέχουν χρονολογία ενεργειών χρήστη πριν από το σφάλμα, κρίσιμη για τη διάγνωση πολύπλοκων σφαλμάτων.
  • Source maps και dSYM επαναφέρουν αναγνώσιμη στοίβα κλήσεων από συγκεχυμένο κώδικα παραγωγής.
  • Performance Tracing είναι ενσωματωμένο με το error tracking, επιτρέποντας την πλοήγηση από μετρήσεις χρόνου σε λεπτομέρειες σφάλματος μέσω ενιαίου trace ID.
  • Auto-instrumentation καλύπτει Activity, ViewController, αιτήματα HTTP και τον κύκλο ζωής της εφαρμογής χωρίς χειροκίνητο κώδικα.
  • Η εφαρμογή του Sentry συνιστάται για κάθε εφαρμογή παραγωγής: το δωρεάν πρόγραμμα καλύπτει 5.000 γεγονότα το μήνα, αρκετά για μικρά και μεσαία έργα.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης