Brugerdefinerede metrics med Micrometer
Registrér Deres egne applikationsmetrics.
Brugerdefinerede metrics med Micrometer er en gratis Spring Boot 4-mikrotjenester og REST-API'er-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 Spring Boot 4-mikrotjenester og REST-API'er, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 4 lektioner i alt.
Micrometer: metrikfacaden
Spring Boot bruger Micrometer som en leverandøruafhængig metrikfacade — metrikkenes SLF4J. Du instrumenterer kode mod én API og eksporterer derefter til Prometheus, Datadog, CloudWatch og andre systemer ved at tilføje et register.
MeterRegistry
Den centrale komponent er MeterRegistry. Boot konfigurerer automatisk et register og registrerer det som en bean, så du blot injicerer det, hvor du vil registrere målinger.
@Service
public class OrderService {
private final MeterRegistry registry;
public OrderService(MeterRegistry registry) {
this.registry = registry;
}
}Tællere
En Counter registrerer en værdi, der kun stiger — perfekt til at tælle hændelser som placerede ordrer eller registrerede fejl. Opret den én gang, og inkrementér den, efterhånden som hændelserne forekommer.
@Service
public class OrderService {
private final Counter ordersPlaced;
public OrderService(MeterRegistry registry) {
this.ordersPlaced = registry.counter("orders.placed");
}
public void place(Order o) {
// ... business logic
ordersPlaced.increment();
}
}Tags (dimensioner)
Tilføj tags for at opdele en metrik efter dimensioner — kanal, region og status. Hver unik kombination af tags er en separat tidsserie, så hold kardinaliteten af tags begrænset.
registry.counter("orders.placed",
"channel", "web",
"region", "eu")
.increment();Timere
En Timer måler både, hvor ofte noget sker, og hvor lang tid det tager, og giver antal, samlet tid og maksimum. Brug den til at følge operationers svartid.
Timer timer = registry.timer("orders.process.time");
timer.record(() -> processOrder(order));Manuel registrering af tid
Når du ikke kan indpakke arbejdet i en lambda, skal du registrere et Timer.Sample i starten og stoppe det mod en timer til sidst.
Timer.Sample sample = Timer.start(registry);
try {
processOrder(order);
} finally {
sample.stop(registry.timer("orders.process.time"));
}Målere
En Gauge rapporterer en værdi, der kan gå op eller ned — for eksempel kødybde, aktive sessioner eller cachestørrelse. Du registrerer en funktion, som Micrometer prøver efter behov.
registry.gauge("orders.queue.size",
orderQueue, q -> q.size());Fordelingsopsummeringer
En DistributionSummary følger fordelingen af vilkårlige værdier, såsom størrelsen på anmodningers nyttedata, og giver antal, samlet værdi og percentiler.
DistributionSummary summary = registry.summary("orders.amount");
summary.record(order.getTotal().doubleValue());Deklarativ tidsmåling med @Timed
Annotationen @Timed måler tiden for en metode uden manuel instrumentering. Det kræver, at en bean af typen TimedAspect er registreret.
@Bean
TimedAspect timedAspect(MeterRegistry registry) {
return new TimedAspect(registry);
}
@Timed(value = "orders.process.time")
public void process(Order o) { /* ... */ }Eksport til Prometheus
Tilføj afhængigheden til Prometheus-registret, og eksponér endepunktet prometheus. Micrometer udgiver derefter et scrape-endepunkt med alle dine målere.
# dependency: micrometer-registry-prometheus
management:
endpoints:
web:
exposure:
include: prometheus,metrics,health
# scrape: /actuator/prometheusDisciplin for kardinalitet
Den største faldgrube ved metrikker er tags med høj kardinalitet. Brug aldrig bruger-id'er, anmodnings-id'er eller rå URL'er som tags — hver unik værdi multiplicerer tidsserierne og kan overbelaste din backend.
Hurtigt tjek
Prøv din forståelse af målertyper.
Opsummering
Micrometer instrumenterer din app.
- Injicér den automatisk konfigurerede
MeterRegistry Countertil monotone tællinger,Timertil svartiderGaugetil svingende værdier,DistributionSummarytil fordelinger- Brug tags med begrænset kardinalitet; undgå høj kardinalitet
- Eksportér til Prometheus og lignende via en registerafhængighed
Lær Java 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
- 24
- Lektioner
- 93
Ofte stillede spørgsmål
Er lektionen “Brugerdefinerede metrics med Micrometer” gratis?
Ja — hele teksten til “Brugerdefinerede metrics med Micrometer” 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 Spring Boot 4-mikrotjenester og REST-API'er-kurset, skal du opgradere til CoddyKit PRO. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Brugerdefinerede metrics med Micrometer”?
Registrér Deres egne applikationsmetrics. Du øver dig i Spring Boot 4-mikrotjenester og REST-API'er 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å Spring Boot 4-mikrotjenester og REST-API'er?
Der kræves ingen tidligere erfaring. Spring Boot 4-mikrotjenester og REST-API'er 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 “Brugerdefinerede metrics med Micrometer”?
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 Spring Boot 4-mikrotjenester og REST-API'er-lektion?
Ja. Alle Spring Boot 4-mikrotjenester og REST-API'er-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
- Aktivér Actuator-endpoints
- Health indicators
- Brugerdefinerede metrics med Micrometer
- Sikring af Actuator-endpoints