Το Sentry είναι μια πλατφόρμα για την παρακολούθηση σφαλμάτων και την παρακολούθηση της απόδοσης εφαρμογών σε πραγματικό χρόνο, παρέχοντας στους προγραμματιστές πλήρες πλαίσιο για κάθε αποτυχία. Σύμφωνα με το Sentry Documentation, 2025, το Sentry επεξεργάζεται πάνω από 10 δισεκατομμύρια γεγονότα ημερησίως, παρέχοντας ενσωμάτωση με 90+ γλώσσες και framework για iOS, Android, web και backend.
Κύρια σημεία
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 (διακομιστής μεσολάβησης) και backend επεξεργασίας γεγονότων. Sentry SDK είναι μια βιβλιοθήκη που ενσωματώνεται στην εφαρμογή, συλλαμβάνει εξαιρέσεις, συλλέγει πλαίσιο και στέλνει γεγονότα στο Relay μέσω πρωτοκόλλου JSON/HTTPS.
Relay είναι ένας ενδιάμεσος διακομιστής που μπορεί να αναπτυχθεί στην υποδομή της εταιρείας. Λαμβάνει γεγονότα από το SDK, φιλτράρει σύμφωνα με κανόνες (δεδομένα PII, περιττά γεγονότα), αποθηκεύει προσωρινά και προωθεί στο Sentry SaaS ή σε δική του παρουσία. Το Relay εξασφαλίζει χαμηλή καθυστέρηση αποστολής — τυπικός χρόνος λήψης γεγονότος είναι 500–1500 ms.
Το Sentry παρέχει ενσωματωμένα φίλτρα για απόρριψη ανεπιθύμητων γεγονότων χωρίς αποστολή τους στον διακομιστή: σφάλματα από δοκιμαστικά περιβάλλοντα, σφάλματα από παλιές εκδόσεις εφαρμογής, επαναλαμβανόμενα γεγονότα με ίδιο fingerprint. Filtering εξοικονομεί έως και 70% του όγκου δεδομένων σε ένα τυπικό έργο παραγωγής, μειώνοντας το κόστος κατανάλωσης και το φορτίο του καναλιού επικοινωνίας της συσκευής.
Η εγκατάσταση του Sentry SDK για κινητές πλατφόρμες διαρκεί 5–10 λεπτά και απαιτεί προσθήκη εξάρτησης και αρχικοποίηση με κλειδί DSN. DSN (Data Source Name) είναι το μοναδικό αναγνωριστικό του έργου στο Sentry που υποδεικνύει πού να στέλνονται τα γεγονότα.
Για Android, το Sentry παρέχει αυτόματη ενόργανη μέτρηση μέσω του πρόσθετου Gradle. Το πρόσθετο τροποποιεί τον bytecode στο στάδιο μεταγλώττισης, προσθέτοντας περιτυλίγματα για όλες τις Activity, Fragment και κλήσεις δικτύου. Auto-instrumentation ενεργοποιείται με μία επιλογή στο build.gradle και επιτρέπει τη λήψη breadcrumbs από τον κύκλο ζωής της εφαρμογής χωρίς αλλαγή κώδικα.
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 δημιουργεί αυτόματα συνεδρίες για κάθε εκκίνηση της εφαρμογής.
Το 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.
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, μετά τον οποίο οι παλαιότερες εγγραφές διαγράφονται αυτόματα.
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, που επιτρέπει τον γρήγορο εντοπισμό του προβλήματος στη ροή πληρωμής.
Το Sentry επιτρέπει την επισύναψη πληροφοριών χρήστη στα γεγονότα: ID, όνομα χρήστη, email. User context μεταδίδεται αυτόματα με όλα τα γεγονότα από μία συνεδρία, επιτρέποντας την ομαδοποίηση σφαλμάτων ανά χρήστη και τον προσδιορισμό του πόσοι χρήστες επηρεάστηκαν από ένα συγκεκριμένο σφάλμα. Είναι σημαντικό να τηρείται η πολιτική απορρήτου και να μην μεταδίδονται προσωπικά δεδομένα εάν δεν επιτρέπεται από την πολιτική της εφαρμογής.
Στις εκδόσεις παραγωγής 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.
Από την έκδοση 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 παρέχει περισσότερο πλαίσιο: breadcrumbs, προσαρμοσμένα δεδομένα, σύνδεση σφαλμάτων με απόδοση. Το Firebase Crashlytics είναι ένα δωρεάν εργαλείο με βασική αναφορά σφαλμάτων, αλλά χωρίς distributed tracing και χωρίς δυνατότητα προσαρμοσμένης ενόργανης μέτρησης breadcrumbs. Το Sentry είναι κατάλληλο για έργα που χρειάζονται βαθιά διάγνωση.
Το Sentry προσφέρει δωρεάν πρόγραμμα για 5.000 γεγονότα το μήνα (σφάλματα + συναλλαγές). Το πρόγραμμα επί πληρωμή Team κοστίζει 26 δολάρια ανά χρήστη το μήνα και περιλαμβάνει 100.000 γεγονότα. Για μεγάλα έργα, διατίθεται το πρόγραμμα Business με απεριόριστο όγκο και ατομική τιμή.
Το Sentry παρέχει ενσωματωμένο μηχανισμό Data Scrubbing: αυτόματη αφαίρεση email, διευθύνσεων IP, πιστωτικών καρτών και άλλων δεδομένων PII από γεγονότα πριν από την αποθήκευση. Οι κανόνες scrubbing διαμορφώνονται στη διεπαφή ιστού ή στη διαμόρφωση Relay με υποστήριξη κανονικών εκφράσεων. Συνιστάται η ενεργοποίηση scrubbing σε επίπεδο SDK, ώστε τα εμπιστευτικά δεδομένα να μην εγκαταλείπουν τη συσκευή του χρήστη.
Ναι, το Sentry διαθέτει πλήρως ανοιχτού κώδικα έκδοση αυτο-φιλοξενίας. Self-hosted Sentry αναπτύσσεται μέσω Docker Compose και περιλαμβάνει όλες τις λειτουργίες της έκδοσης SaaS. Απαιτείται ελάχιστη διαμόρφωση διακομιστή: 4 vCPU, 16 GB RAM, 100 GB χώρου δίσκου για αποθήκευση γεγονότων.
Ναι, το Sentry SDK υποστηρίζει πλήρως SwiftUI (iOS 13+) και Jetpack Compose (Android). Για SwiftUI, το SDK δημιουργεί αυτόματα συναλλαγές για NavigationView και List με μέτρηση χρόνου απόδοσης. Για Jetpack Compose, απαιτείται προσαρμοσμένη ενσωμάτωση μέσω CompositionLocalProvider για μεταφορά του πλαισίου Sentry στα Composables.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης