Instrumentering av apper med OTel SDK-er
Få en oversikt over OpenTelemetry SDK-er for ulike programmeringsspråk. Forstå hvordan de brukes til å generere logger, måltall og spor.
Instrumentering av apper med OTel SDK-er er en gratis leksjon i Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry) på CoddyKit. Dette er leksjon 3 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.
Hva er OTel SDK-er?
OpenTelemetry SDK-er er språkspesifikke biblioteker som gjør det mulig for applikasjonene Deres å generere og eksportere observability-data. Tenk på dem som verktøysettet som gjør koden Deres observerbar.
De tilbyr de nødvendige API-ene (Application Programming Interfaces) for å fange opp logger, metrikker og traces direkte fra applikasjonens kjøretidsmiljø.
OpenTelemetry SDK-enes rolle
SDK-er er viktige fordi de bygger bro mellom applikasjonskoden Deres og OpenTelemetry-standarden. De håndterer det komplekse arbeidet med:
- Innsamling av data: Samle inn rå observability-signaler, for eksempel metodekall eller variabelverdier.
- Behandling av data: Berike, filtrere og samle disse dataene i batcher.
- Eksport av data: Sende de behandlede dataene til en observability-backend, for eksempel Jaeger, Prometheus eller en ELK-stack.
Viktige komponenter i OTel SDK-er
En OpenTelemetry SDK inneholder vanligvis flere kjernekomponenter som fungerer sammen:
- Providers: For eksempel
TracerProvider,MeterProviderogLoggerProvider, som administrerer opprettelsen av Tracers, Meters og Loggers. - Processors/Readers: Disse definerer hvordan innsamlede data (spans, metrikker og loggoppføringer) behandles før de sendes til en exporter.
- Exporters: Komponenter som sender de behandlede dataene til et eksternt system, for eksempel en konsoll eller et eksternt endepunkt.
Tracing med OTel SDK-er
Når De vil trace forespørsler gjennom systemet, tilbyr OpenTelemetry SDK-er verktøy for å opprette og administrere spans. En span representerer én enkelt operasjon i en trace.
SDK-en gir Dem et Tracer-objekt som De bruker til å starte nye spans, angi attributter for dem og koble dem til overordnede spans. På denne måten bygger De i praksis opp en komplett trace av en forespørsels vei gjennom systemet.
Kodeeksempel på OTel tracing
Her er et enkelt Python-eksempel som viser hvordan De initialiserer OpenTelemetry og oppretter en grunnleggende trace med nestede spans. Vi bruker en ConsoleSpanExporter til å skrive ut spans til konsollen.
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor
# 1. Configure the TracerProvider
provider = TracerProvider()
processor = SimpleSpanProcessor(ConsoleSpanExporter())
provider.add_span_processor(processor)
trace.set_tracer_provider(provider)
# 2. Get a Tracer
tracer = trace.get_tracer(__name__)
# 3. Create a Span
with tracer.start_as_current_span("my-first-span"):
print("Inside the span!")
with tracer.start_as_current_span("child-span"):
print("Inside the child span!")
print("Tracing example finished.")Metrikker med OTel SDK-er
OpenTelemetry SDK-er lar Dem definere og registrere ulike typer metrikker. Metrikker er numeriske målinger som samles inn over tid, og som er nyttige for aggregerte visninger av systemets tilstand og ytelse.
De henter et Meter-objekt fra SDK-en, som De deretter bruker til å opprette ulike instrumenter, for eksempel Counters (for å øke verdier) eller Gauges (for gjeldende verdier).
Kodeeksempel på OTel-metrikker
Dette Python-eksempelet viser hvordan De setter opp OpenTelemetry for metrikker og bruker en Meter til å opprette og oppdatere en Counter. ConsoleMetricExporter skriver ut de innsamlede metrikkene.
from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import ConsoleMetricExporter, PeriodicExportingMetricReader
# 1. Configure the MeterProvider
reader = PeriodicExportingMetricReader(ConsoleMetricExporter())
provider = MeterProvider(metric_readers=[reader])
metrics.set_meter_provider(provider)
# 2. Get a Meter
meter = metrics.get_meter(__name__)
# 3. Create a Counter instrument
counter = meter.create_counter(
"my_example_counter",
description="Counts how many times something happens"
)
# 4. Record a measurement
counter.add(1, {"key": "value"})
counter.add(2, {"another_key": "another_value"})
print("Metrics example finished. May take a moment to export.")Logging med OTel SDK-er
OpenTelemetry SDK-er tilbyr også en måte å fange opp og berike logger på. Tradisjonell logging fokuserer ofte på ren tekst, mens OTel-logger kan være strukturerte og korreleres med traces og metrikker.
SDK-en tilbyr en Logger (eller integreres med eksisterende logging-rammeverk) for å opprette Log Records. Disse postene kan deretter behandles og eksporteres sammen med traces og metrikker, slik at De får en samlet oversikt.
Kodeeksempel på OTel-logging
Dette Python-eksempelet viser hvordan De integrerer OpenTelemetry med Pythons standardbibliotek for logging. Logger som sendes gjennom standardloggeren, blir deretter behandlet og eksportert av OTel.
import logging
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import ConsoleLogExporter, SimpleLogRecordProcessor
# 1. Configure the LoggerProvider
provider = LoggerProvider()
processor = SimpleLogRecordProcessor(ConsoleLogExporter())
provider.add_log_record_processor(processor)
set_logger_provider(provider)
# 2. Get a Python standard logger
# and attach the OTel handler
handler = LoggingHandler(logger_provider=provider)
logging.getLogger().addHandler(handler)
logging.getLogger().setLevel(logging.INFO)
# 3. Emit a log record
logging.info("This is an info log from OTel SDK!")
logging.warning("A warning occurred.")
print("Logging example finished.")Kort kunnskapssjekk: OTel SDK-er
OpenTelemetry SDK-er er nødvendige for å instrumentere applikasjoner. Hvilket av alternativene nedenfor er IKKE en kjernekomponent eller funksjon som tilbys av en OpenTelemetry SDK?
Oppsummering: OTel SDK-er
De har lært at OpenTelemetry SDK-er er de grunnleggende verktøyene for å instrumentere applikasjoner på tvers av ulike programmeringsspråk.
- De tilbyr API-ene som genererer traces, metrikker og logger.
- De håndterer behandlingen og eksporten av disse dataene til den observability-backend-løsningen De har valgt.
- Ved å bruke SDK-er sørger De for at applikasjonens observability-data følger OpenTelemetry-standarden, slik at dataene blir portable og leverandøruavhengige.
Deretter skal De gå dypere inn i hvordan De kan instrumentere applikasjonene Deres effektivt.
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 «Instrumentering av apper med OTel SDK-er» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Systemobservabilitet: logging, metrikker og tracing (ELK + OpenTelemetry), inkludert «Instrumentering av apper med OTel SDK-er», 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 «Instrumentering av apper med OTel SDK-er»?
Få en oversikt over OpenTelemetry SDK-er for ulike programmeringsspråk. Forstå hvordan de brukes til å generere logger, måltall og spor. 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 3 av 4.
Hvor lang tid tar leksjonen «Instrumentering av apper med OTel SDK-er»?
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
- OpenTelemetry-standarden
- OTel-innsamlere og eksportører
- Instrumentering av apper med OTel SDK-er
- Signaler og semantiske konvensjoner