Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry) · Lektion

Strategier för mätvärdesinsamling

Upptäck olika metoder för att samla in mätvärden, inklusive push- och pull-modeller. Utforska vanliga agenter och bibliotek för insamling av mätvärden.

Lektion 2 av 411 steg

Strategier för mätvärdesinsamling är en gratis lektion i Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry) på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry) innehåller totalt 4 lektioner.

Välkommen till insamling av mätvärden!

I den här lektionen utforskar vi hur ni samlar in de värdefulla mätvärden som vi diskuterade tidigare. Tänk på det som att installera systemets ”öron” och ”ögon”!

Att samla in mätvärden är avgörande för att förstå hur era applikationer och er infrastruktur fungerar. Det hjälper er att snabbt upptäcka problem och säkerställa att allt körs smidigt.

Två huvudmetoder: push eller pull

När det gäller att hämta mätvärden från era system finns det två grundläggande strategier:

  • Push-modellen: Applikationen eller en dedikerad agent skickar mätvärden till en central insamlare.
  • Pull-modellen: En central insamlare hämtar mätvärden från applikationerna eller agenterna.

Varje metod har sina egna styrkor och svagheter, som vi utforskar härnäst.

Förstå push-modellen

I push-modellen skickar applikationen eller en lokal agent aktivt sina mätvärdesdata till ett centralt mätvärdeslager eller en central insamlare. Det är som om appen ropar ut statusuppdateringar!

  • Fördelar: Fungerar ofta enklare med brandväggar (endast utgående anslutningar), passar bra för kortlivade jobb som kan försvinna innan en insamlare hinner hämta data och kan hantera nätverksavbrott genom att buffra data.
  • Nackdelar: Insamlaren måste hantera potentiellt oförutsägbar inkommande belastning, och det är svårare att automatiskt upptäcka nya mål.

Exempel på push-modellen (konceptuellt)

Här är ett enkelt Java-program som konceptuellt demonstrerar hur ett mätvärde skickas. I ett verkligt scenario skulle detta innebära att data skickas via HTTP till en slutpunkt för en mätvärdesinsamlare.

Prova att köra det för att se principen!

public class MetricPusher {
  public static void main(String[] args) {
    double cpuUsage = 65.2;
    String metricName = "cpu_usage_percent";

    // Simulate sending the metric to a collector
    System.out.println("Pushing metric: " + metricName + " = " + cpuUsage);
    System.out.println(" (Imagine this is an HTTP POST to a collector)");
  }
}

Förstå pull-modellen

Med pull-modellen begär eller ”skrapar” en central mätvärdesinsamlare aktivt mätvärden från era applikationer eller agenter med jämna mellanrum. Det är som om insamlaren frågar: ”Hej, vad är er status?”

  • Fördelar: Enklare tjänsteupptäckt (insamlaren hittar målen), insamlaren styr insamlingsfrekvens och belastning och målkonfigurationen blir enklare.
  • Nackdelar: Kräver inkommande nätverksåtkomst till målen, målen måste vara långlivade för att kunna skrapas och metoden är mer komplex i mycket dynamiska miljöer.

Exempel på pull-modellen (konceptuellt)

Det här Java-exemplet simulerar en applikation som exponerar en mätvärdesslutpunkt, redo för att en insamlare ska kunna hämta data från den. En verklig applikation skulle köra en liten webbserver.

Kör det för att se hur en app kan göra data tillgänglig.

public class MetricExposer {
  public static void main(String[] args) {
    String appStatus = "healthy";
    int activeUsers = 150;

    // Simulate an application making metrics available at an endpoint
    System.out.println("Application running...");
    System.out.println("Metrics ready for scraping at /metrics endpoint.");
    System.out.println(" (Imagine a collector fetches: app_status='" + appStatus + "', active_users=" + activeUsers + ")");
  }
}

Dedikerade insamlingsagenter

Många system använder dedikerade insamlingsagenter. Det är små program som körs på er server eller i er container och samlar in mätvärden på systemnivå eller fungerar som proxy för mätvärden från applikationer.

  • Prometheus Node Exporter: En populär agent som exponerar maskinvaru- och operativsystemmätvärden (processor, minne och disk-I/O) i ett format som Prometheus (ett pull-baserat system) kan skrapa.
  • Telegraf: En pluginbaserad agent som kan samla in mätvärden från olika källor (databaser, meddelandeköer och systemstatistik) och skicka ut dem till olika destinationer (push eller pull).

Bibliotek i applikationen

För applikationsspecifika mätvärden integrerar ni ofta klientbibliotek direkt i koden. Med dessa bibliotek kan ni instrumentera applikationen så att den exponerar anpassade mätvärden.

  • Micrometer (Java): Ett leverantörsoberoende abstraktionslager för applikationsmätvärden. Ni instrumenterar koden en gång med Micrometer, som sedan kan exportera mätvärden till olika övervakningssystem (till exempel Prometheus, Datadog och Graphite).
  • Prometheus Client Libraries: Språkspecifika bibliotek (till exempel för Java, Python och Go) som låter er definiera och exponera mätvärden direkt från applikationen i Prometheus skrapningsformat.

Välj insamlingsstrategi

Om ni ska välja push eller pull, eller använda agenter eller bibliotek, beror på er specifika miljö:

  • Miljö: Molnbaserad, lokal eller serverlösa funktioner.
  • Nätverkstopologi: Brandväggsregler och tjänstenät.
  • Datavolym och datahastighet: Hur mycket data och hur ofta?
  • Befintliga verktyg: Vilka övervakningssystem använder ni redan?

Ofta används en hybridmetod som kombinerar agenter för systemmätvärden med bibliotek för applikationsmätvärden.

Snabbtest om mätvärden

Ni har lärt er om de två huvudsakliga modellerna för insamling av mätvärden. Nu ska vi se om ni kan skilja dem åt.

Sammanfattning: få mätvärden att fungera

Bra jobbat! Ni har nu förstått de centrala strategierna för att samla in mätvärden.

  • Vi utforskade push-modellen, där applikationer skickar mätvärden.
  • Vi gick också igenom pull-modellen, där en central insamlare hämtar mätvärden.
  • Ni lärde er om dedikerade insamlingsagenter (som Node Exporter och Telegraf) samt bibliotek i applikationen (som Micrometer och Prometheus-klientbibliotek) som implementerar dessa strategier.

Att förstå dessa insamlingsmetoder är avgörande för att bygga en robust observability-miljö!

Gratis att börja

Lär dig Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry) med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Strategier för mätvärdesinsamling” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry), inklusive ”Strategier för mätvärdesinsamling”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry) innehåller totalt 4 lektioner.

Vad lär jag mig i ”Strategier för mätvärdesinsamling”?

Upptäck olika metoder för att samla in mätvärden, inklusive push- och pull-modeller. Utforska vanliga agenter och bibliotek för insamling av mätvärden. Ni övar på Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry)?

Du behöver inga förkunskaper. Utbildningen i Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Strategier för mätvärdesinsamling”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry)-lektionen?

Ja. Varje Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Förklaring av mätvärdestyper
  2. Strategier för mätvärdesinsamling
  3. Visualisering och larm för mätvärden
  4. Mätetalens kardinalitet och bästa praxis för etiketter
← Tillbaka till Systemobservabilitet: loggning, mätvärden och tracing (ELK + OpenTelemetry)