Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) · leksjon

Teknikker for automatisk instrumentering

Lær å bruke OpenTelemetrys funksjoner for automatisk instrumentering, slik at du raskt kan legge til observasjon i eksisterende applikasjoner med minimale kodeendringer.

Leksjon 1 av 411 trinn

Teknikker for automatisk instrumentering er en gratis leksjon i Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) inneholder totalt 4 leksjoner.

Introduksjon til auto-instrumentering

Velkommen til Auto-Instrumentation Techniques! Denne leksjonen handler om å legge til observability i applikasjonene Deres uten å endre koden.

Tenk på det som et magisk triks: Appen begynner å rapportere logger, metrikker og traces, uten at De har skrevet en eneste ekstra kodelinje. Dette er svært kraftig for eksisterende eller eldre systemer.

Slik fungerer auto-instrumentering

Så hvordan skjer dette? Auto-instrumentering bruker vanligvis spesialiserte agenter eller profilers som kobler seg til applikasjonen ved kjøring.

  • Bytekode-manipulering: For språk som Java kan agenter endre applikasjonens bytekode mens den lastes inn, og sette inn logikk for tracing og metrikkinnsamling fra OpenTelemetry.
  • Innpakking av biblioteker: For andre språk kan dette innebære å pakke inn vanlige biblioteker dynamisk (for eksempel HTTP-klienter eller databasedrivere) for å fange opp kallene deres.

Viktige fordeler og bruksområder

Auto-instrumentering gir betydelige fordeler:

  • Raskt oppsett: Få grunnleggende observability på plass på minutter, ikke timer eller dager.
  • Ingen kodeendringer: Avgørende for eldre applikasjoner der det er risikabelt eller umulig å endre koden.
  • Grunnleggende innsyn: Gir umiddelbar innsikt i vanlige operasjoner som HTTP-forespørsler, databasespørringer og metodekjøringer.
  • Mindre arbeid: Utviklerne bruker mindre tid på å skrive standardisert instrumenteringskode.

OpenTelemetry Java Agent

Et fremtredende eksempel er OpenTelemetry Java Agent. Dette er én enkelt JAR-fil som De kobler til Java Virtual Machine (JVM) ved hjelp av et kommandolinjeargument.

Når agenten er koblet til, instrumenterer den automatisk mange populære Java-biblioteker og -rammeverk og genererer traces, metrikker og logger uten at applikasjonskoden må endres.

Enkelt utgangspunkt for en Java-app

La oss se på en svært enkel Java-applikasjon. Dette programmet kjører en main-metode og kaller en annen metode, sayHello. Vanligvis ville De bare sett utskriftene fra programmet.

Prøv å kjøre det for å se den normale utskriften:

public class AutoInstrumentDemo {
  public static void main(String[] args) {
    System.out.println("Starting app...");
    sayHello();
    System.out.println("App finished.");
  }

  public static void sayHello() {
    System.out.println("Hello from sayHello!");
  }
}

Kjøring med OTel-agenten

For å auto-instrumentere den forrige appen kjører De den vanligvis slik fra terminalen (forutsatt at De har agentens JAR-fil):

java -javaagent:path/to/opentelemetry-javaagent.jar -jar AutoInstrumentDemo.jar

Flagget -javaagent ber JVM-en laste inn OpenTelemetry-agenten. Agenten oppdager og oppretter deretter automatisk spans for metodekallene main og sayHello, og sender dem til OpenTelemetry Collector som De har konfigurert.

Automatisk tracing av HTTP-kall

Auto-instrumentering er spesielt effektiv for vanlige I/O-operasjoner som HTTP-forespørsler. Agenten oppdager automatisk kall som gjøres av standardbiblioteker, og oppretter spans som viser forsinkelsen og om de lykkes eller mislykkes.

Her er et enkelt Java-program som simulerer et HTTP-kall. Hvis det kjøres med OTel-agenten, vil dette «simulerte» kallet vises som en nettverksspan.

public class HttpCallDemo {
  public static void main(String[] args) {
    System.out.println("Making a simulated HTTP call...");
    simulateHttpRequest();
    System.out.println("Simulated call finished.");
  }

  public static void simulateHttpRequest() {
    try {
      // In a real app, this would be an actual HTTP client call
      // e.g., new java.net.http.HttpClient().send(...)
      Thread.sleep(100); // Simulate network delay
      System.out.println("HTTP call logic executed.");
    } catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      System.err.println("HTTP call interrupted.");
    }
  }
}

Hvilke data samles inn?

Ved bruk av auto-instrumentering får De vanligvis:

  • Traces: Spans for metodekall, HTTP-forespørsler (innkommende og utgående), databasespørringer og operasjoner i meldingskøer.
  • Metrikker: Grunnleggende metrikker som forespørselsforsinkelse, feilrater og antall kall for instrumenterte operasjoner.
  • Logger: Noen agenter kan også fange opp logger og berike dem med trace- og span-ID-er, slik at logger kan knyttes til bestemte operasjoner.

Når auto-instrumentering ikke strekker til

Selv om auto-instrumentering er kraftig, har den begrensninger:

  • Manglende forretningskontekst: Den kjenner ikke automatisk applikasjonens spesifikke forretningslogikk (for eksempel «brukerregistrering» i stedet for bare «HTTP POST»).
  • Egendefinerte attributter: De kan ikke enkelt legge til egendefinerte attributter som er spesifikke for domenet Deres, uten manuelle kodeendringer.
  • Begrensede egendefinerte metrikker og logger: Den tilbyr generiske signaler, men hvis De trenger svært spesifikke egendefinerte metrikker eller loggberikelse, er manuell innsats ofte nødvendig.

Det er her manuell instrumentering (vår neste leksjon!) blir viktig for å fylle hullene.

Kort kunnskapssjekk: Auto-instrumentering

Hvilke av alternativene nedenfor er viktige fordeler ved å bruke OpenTelemetrys auto-instrumenteringsteknikker?

Oppsummering: Auto-instrumentering

I denne leksjonen utforsket vi OpenTelemetrys auto-instrumentering. De lærte at den bruker agenter eller profilere til å sette inn observability-logikk i applikasjonen ved kjøring, uten at kildekoden må endres.

Denne teknikken gir rask og grunnleggende innsikt i vanlige operasjoner som HTTP-kall og metodekjøringer, og er derfor ideell for raskt å få innsikt i nye eller eldre applikasjoner. For dyp forretningskontekst og egendefinerte data er det imidlertid nødvendig med manuell instrumentering.

Gratis å komme i gang

Lær deg Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Teknikker for automatisk instrumentering» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry), inkludert «Teknikker for automatisk instrumentering», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) inneholder totalt 4 leksjoner.

Hva lærer jeg i «Teknikker for automatisk instrumentering»?

Lær å bruke OpenTelemetrys funksjoner for automatisk instrumentering, slik at du raskt kan legge til observasjon i eksisterende applikasjoner med minimale kodeendringer. Du øver på Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry)?

Ingen tidligere erfaring er nødvendig. Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Teknikker for automatisk instrumentering»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry)-leksjonen?

Ja. Alle Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Teknikker for automatisk instrumentering
  2. Beste praksis for manuell instrumentering
  3. Kontekstforplantning og baggage
  4. Span-attributter, hendelser og status
← Tilbake til Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry)