Sentry is een populair foutopsporingsplatform dat u realtime inzicht geeft in problemen in uw productieomgevingen. Met de functie voor foutrapportage van GitLab kunt u Sentry-rapporten naar uw bronbeheerplatform brengen en een gecentraliseerde weergave bieden die Sentry-fouten en GitLab-problemen verenigt.
De functie was oorspronkelijk gebaseerd op een integratie met een bestaande Sentry-service, ofwel de officiële Sentry.io of uw eigen zelf-gehoste server. Dit veranderde met GitLab 14.4, dat een lichtgewicht Sentry-compatibele backend aan GitLab zelf toevoegde. Je hebt geen echte Sentry-installatie meer nodig om foutrapporten in GitLab te krijgen.
Hier leest u hoe u aan de slag gaat met de geïntegreerde Sentry-backend. Voordat we verder gaan, is het vermeldenswaard dat deze mogelijkheid misschien niet geschikt voor u is als u al bekend bent met het Sentry-dashboard. De backend van GitLab is een barebones-oplossing die fouten als een eenvoudige lijst weergeeft. Het is het beste voor kleinere toepassingen waarbij u niet de overhead wilt van het beheren van een afzonderlijk Sentry-project.
Aan de slag
Maak een nieuw project op GitLab.com of uw eigen GitLab-server. Navigeer naar Instellingen > Controleer in de zijbalk van uw project en vouw vervolgens de functie 'Error tracking' uit. sectie. Schakel het selectievakje onder “Foutopsporing inschakelen” in. Zorg ervoor dat de "Error tracking-backend" keuzerondje is ingesteld op “GitLab”. Druk op de blauwe “Wijzigingen opslaan” knop om door te gaan.
< p>De pagina wordt opnieuw geladen. Nu kunt u de “Error tracking” sectie opnieuw om uw DSN-tekenreeks te onthullen. Deze URL wordt gebruikt om uw Sentry-clientbibliotheek te configureren om gebeurtenissen naar de GitLab-server te verzenden.
De client configureren
Nu kun je Sentry aan je code toevoegen. Hier is een eenvoudig voorbeeld met behulp van de officiële Sentry-clientbibliotheek voor Node.js. U kunt het pakket installeren door npm install @sentry/node uit te voeren. Documentatie over alle beschikbare clients is verkrijgbaar bij Sentry.
const schildwacht = vereisen("@sentry/node"); schildwacht.init({ dsn: "https://glet_abc123@gitlab.example.com/api/v4/error_tracking/collector/1" }); Advertentie
Vervang de DSN-waarde door de tekenreeks die u uit de GitLab-gebruikersinterface hebt gekopieerd. Het gedeelte voor de @ is een speciaal authenticatietoken dat toegang geeft tot de GitLab-server. De rest bestaat uit het unieke API-eindpunt voor het bijhouden van fouten voor uw project.
Uw integratie testen
Officiële Sentry-clientbibliotheken beginnen met het vastleggen van onverwerkte fouten zodra ze zijn geconfigureerd met een DSN. Als een van de volgende code een fout genereert die u niet kunt opvangen, wordt de gebeurtenis gerapporteerd aan uw GitLab-server.
U kunt de integratie testen door handmatig gebeurtenissen vast te leggen. Hier is een voorbeeld dat een Errorinstance maakt en rapporteert:
Sentry.captureException(new Error("Sentry test"));
Gebruik de zijbalk van uw project in de GitLab-webgebruikersinterface om naar de Monitor > Foutopsporingspagina. De fout die u hebt vastgelegd, zou in de lijst moeten verschijnen. Klik op het item om het volledige rapport en de stacktracering te bekijken.
GitLab-problemen kunnen worden gemaakt op basis van rapporten met behulp van de blauwe “Maak probleem” knop in de rechterbovenhoek. Hiermee kunt u herstelwerkzaamheden toewijzen aan teamleden en een discussie over het probleem starten. Het probleem behoudt een link naar het foutenrapport en de stacktracering wordt inline weergegeven onder de beschrijving van het probleem.
Advertentie
Als u klaar bent met het patchen van een probleem, gebruikt u de fout Trackingpagina om deze als opgelost te markeren. Problemen kunnen ook worden genegeerd als u niet van plan bent ze op te lossen, misschien omdat ze van voorbijgaande aard waren of zijn vastgelegd door een verouderde client.
Beperkingen
De geïntegreerde Sentry-backend van GitLab is momenteel bedoeld voor kleinschalige situaties waar het inzetten van Sentry als te complex of onnodig wordt ervaren. Het volledige Sentry-platform is een breed systeem dat tijd kan kosten om te configureren en te onderhouden. De integratie van GitLab is een enkel selectievakje in de instellingen van uw project, maar deze eenvoud heeft een prijs.
De lijst Foutopsporing is uw enige weergave in rapporten. U kunt ze momenteel niet in een grafiek weergeven, wijzigingen in rapportvolumes in de loop van de tijd bekijken of filteren op individuele gebruikers of klanten. Gedetailleerde informatie die wordt weergegeven door de Sentry UI, zoals browser- en servergegevens, wordt momenteel niet ondersteund of is nergens in GitLab te vinden.
Je moet er ook rekening mee houden dat GitLab nog geen e-mails kan verzenden voor nieuwe foutrapporten. U moet de pagina Foutopsporing handmatig controleren om de gebeurtenissen die door uw implementaties worden gegenereerd, voor te blijven.
Omdat GitLab de kernfuncties van de Sentry API implementeert, is het compatibel met de meeste grote SDK's en clientbibliotheken. Vanaf GitLab 14.5 is bevestigd dat het werkt met Ruby, JavaScript, Java en Python; andere talen hebben gedeeltelijke ondersteuning of zullen worden toegevoegd in toekomstige GitLab-releases.
Samenvatting
GitLab’s Sentry-backend biedt een eenvoudige manier om foutrapporten vast te leggen uit uw applicatie en bewaar ze naast uw code. Hoewel de huidige beperkingen het ongeschikt maken voor alle, behalve de eenvoudigste gebruiksgevallen, is het nog steeds een aantrekkelijke optie voor kleinere sites en persoonlijke projecten die niet de complexiteit van een volledige Sentry-service nodig hebben.
Advertentie
De geïntegreerde backend kan ook handig zijn bij het testen van Sentry-integratie met uw code. Als u een nieuwe client opzet of instellingen van een bestaande wijzigt, kunt u uw GitLab-server als tijdelijke backend gebruiken, zodat u uw primaire Sentry-implementatie niet vervuilt.
De component Error Tracking van GitLab blijft in ontwikkeling en zal in de loop van volgende mijlpalen worden uitgebreid. Hierdoor zou het moeten evolueren naar een meer volwaardige optie die de stand-alone Sentry in een bredere reeks omgevingen kan vervangen.