GraphQL-API'er med Spring Boot · Lektion

Overvågning og tracing af GraphQL

Opsæt overvågning og tracing af dit GraphQL-API for at få indsigt i ydeevnen og identificere flaskehalse.

Lektion 3 af 411 trin

Overvågning og tracing af GraphQL er en gratis GraphQL-API'er med Spring Boot-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i GraphQL-API'er med Spring Boot, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. GraphQL-API'er med Spring Boot-kurset indeholder 4 lektioner i alt.

Hvorfor overvåge og spore GraphQL?

Når du bygger en API, er det afgørende at forstå dens ydeevne og tilstand. For GraphQL betyder det, at du skal vide, hvordan dine resolvere fungerer, identificere langsomme forespørgsler og hurtigt finde fejl.

Overvågning og sporing er vigtige værktøjer til at vedligeholde en robust og effektiv GraphQL-API.

Overvågning kontra sporing

Selvom de ofte bruges sammen, har overvågning og sporing forskellige formål:

  • Overvågning: Indsamler målinger på højt niveau (f.eks. samlet antal forespørgsler, fejlprocenter og gennemsnitlige svartider) over tid for at observere systemets tilstand. Det fortæller dig hvad der sker.
  • Sporing: Følger en enkelt forespørgsel, mens den bevæger sig gennem systemet, og viser rækkefølgen af operationer, deres varighed og afhængigheder. Det fortæller dig hvorfor noget sker.

Vigtige GraphQL-målinger

For GraphQL giver specifikke målinger dybere indsigt:

  • Antal forespørgsler: Det samlede antal GraphQL-operationer.
  • Fejlprocenter: Procentdelen af mislykkede forespørgsler eller mutationer.
  • Latenstid: Svartiden for forskellige operationer (forespørgsler og mutationer) og endda individuelle felter.
  • Cache-hit/miss: Hvis du bruger caching, viser dette, hvor effektiv den er.

Det hjælper med at lokalisere flaskehalse i ydeevnen.

Grundlæggende overvågning med Actuator

Spring Boot Actuator leverer funktioner, der er klar til produktion, til overvågning af din applikation. Den udstiller forskellige endepunkter til indsamling af oplysninger om tilstand, målinger og meget mere.

For at aktivere den skal du tilføje afhængigheden spring-boot-starter-actuator.

<!-- pom.xml snippet -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Visning af Actuator-målinger

Når Actuator er aktiveret, kan du få adgang til grundlæggende målinger for applikationen. Lad os køre en simpel applikation og kontrollere dens tilstandsendepunkt.

Som standard er målingerne tilgængelige på /actuator/metrics.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ActuatorApp {
  public static void main(String[] args) {
    SpringApplication.run(ActuatorApp.class, args);
  }
}

Hvad er distribueret sporing?

I moderne mikrotjenestearkitekturer kan en enkelt forespørgsel passere gennem mange tjenester. Hvis en forespørgsel er langsom, er det svært at se, hvilken tjeneste der er årsagen.

Distribueret sporing løser dette ved at tildele hvert kald et unikt ID og følge dets vej gennem alle tjenester, så der oprettes et 'spor' af hele operationen.

Sporingsværktøjer: OpenTelemetry og Sleuth

To populære rammeværker til distribueret sporing er:

  • OpenTelemetry: En branchestandardiseret og leverandørneutral API og SDK til instrumentering af applikationer. Den indsamler spor, målinger og logge.
  • Spring Cloud Sleuth: En Spring-integreret løsning, der integreres med OpenTelemetry (eller tidligere OpenTracing/Zipkin) for automatisk at instrumentere Spring-applikationer og videreføre sporings-ID'er på tværs af tjenestekald.

Integration af Spring Cloud Sleuth

For at tilføje sporingsfunktioner til din Spring Boot GraphQL-applikation kan du integrere Spring Cloud Sleuth. Den tilføjer automatisk sporingsoplysninger til dine logge og HTTP-headere.

Du skal også bruge en backend til sporing, f.eks. Zipkin, for at visualisere sporene.

<!-- pom.xml snippet -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>

Sporing af GraphQL-resolvere

Med Spring Cloud Sleuth integreret bliver mange Spring-komponenter, herunder GraphQL-resolvere, automatisk instrumenteret. Det betyder, at trace-id'er føjes til logge og føres videre gennem din applikation.

Når en GraphQL-forespørgsel rammer din resolver, registrerer Sleuth dens udførelse som en del af et trace.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.graphql.data.method.annotation.QueryMapping;
import org.springframework.stereotype.Controller;

@SpringBootApplication
public class TracingGraphQLApp {
  public static void main(String[] args) {
    SpringApplication.run(TracingGraphQLApp.class, args);
  }
}

@Controller
class BookController {
  @QueryMapping
  public String helloBook() {
    // Sleuth automatically traces this method call
    return "Hello GraphQL Tracing!";
  }
}

Kontrol af tracebegreber

Hvilken af følgende beskriver bedst det primære formål med distribueret tracing i en mikrotjenestearkitektur?

Opsummering: Overvågning og tracing

Vi har gennemgået, hvordan overvågning og tracing er afgørende for at forstå din GraphQL-API's ydeevne.

  • Overvågning følger systemets samlede helbred ved hjælp af målinger som latenstid og fejlfrekvens.
  • Tracing følger individuelle forespørgsler gennem distribuerede systemer for at finde flaskehalse.
  • Spring Boot Actuator tilbyder grundlæggende overvågningsfunktioner.
  • Spring Cloud Sleuth hjælper med at implementere distribueret tracing, instrumenterer automatisk din Spring-applikation og integrerer med værktøjer som Zipkin til visualisering.

Disse teknikker giver dyb indsigt, så du kan optimere og vedligeholde GraphQL-tjenester med høj ydeevne.

Gratis at komme i gang

Lær GraphQL-API'er med Spring Boot med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Overvågning og tracing af GraphQL” gratis?

Ja — hele teksten til “Overvågning og tracing af GraphQL” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af GraphQL-API'er med Spring Boot-kurset, skal du opgradere til CoddyKit PRO. GraphQL-API'er med Spring Boot-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Overvågning og tracing af GraphQL”?

Opsæt overvågning og tracing af dit GraphQL-API for at få indsigt i ydeevnen og identificere flaskehalse. Du øver dig i GraphQL-API'er med Spring Boot med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på GraphQL-API'er med Spring Boot?

Der kræves ingen tidligere erfaring. GraphQL-API'er med Spring Boot på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Overvågning og tracing af GraphQL”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne GraphQL-API'er med Spring Boot-lektion?

Ja. Alle GraphQL-API'er med Spring Boot-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Analyse af forespørgselskompleksitet
  2. Cachingstrategier til GraphQL
  3. Overvågning og tracing af GraphQL
  4. Persisted queries og Automatic Persisted Queries
← Tilbage til GraphQL-API'er med Spring Boot