Perkhidmatan Mikro dan API REST Spring Boot 4 · Pelajaran

Metrik Tersuai dengan Micrometer

Rekod metrik aplikasi anda sendiri.

Pelajaran 3 daripada 413 langkah

Metrik Tersuai dengan Micrometer ialah pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.

Micrometer: Antara Muka Metrik

Spring Boot menggunakan Micrometer sebagai antara muka metrik neutral vendor — SLF4J untuk metrik. Anda menginstrumentasikan kod menggunakan satu API, kemudian mengeksportnya ke Prometheus, Datadog, CloudWatch dan lain-lain dengan menambah pendaftar.

MeterRegistry

Komponen pusat ialah MeterRegistry. Boot mengkonfigurasi satu secara automatik dan mendaftarkannya sebagai bean, jadi anda hanya perlu menyuntikkannya di mana-mana ukuran perlu direkodkan.

@Service
public class OrderService {
    private final MeterRegistry registry;
    public OrderService(MeterRegistry registry) {
        this.registry = registry;
    }
}

Pembilang

Counter merekodkan nilai yang hanya meningkat — sesuai untuk mengira peristiwa seperti pesanan dibuat atau ralat ditemui. Ciptakannya sekali dan tingkatkannya apabila peristiwa berlaku.

@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();
    }
}

Tag (Dimensi)

Tambah tag untuk memecahkan metrik mengikut dimensi — saluran, rantau atau status. Setiap gabungan tag unik ialah siri masa yang berasingan, jadi pastikan kardinaliti tag terkawal.

registry.counter("orders.placed",
        "channel", "web",
        "region", "eu")
    .increment();

Pemasa

Timer mengukur kekerapan sesuatu berlaku dan tempoh yang diambil, lalu menghasilkan kiraan, jumlah masa dan nilai maksimum. Gunakannya untuk menjejaki kependaman operasi.

Timer timer = registry.timer("orders.process.time");
timer.record(() -> processOrder(order));

Merekod Masa Secara Manual

Apabila anda tidak boleh membungkus kerja dalam lambda, ambil Timer.Sample pada permulaan dan hentikannya terhadap pemasa pada penghujung.

Timer.Sample sample = Timer.start(registry);
try {
    processOrder(order);
} finally {
    sample.stop(registry.timer("orders.process.time"));
}

Tolok

Gauge melaporkan nilai yang boleh naik atau turun — kedalaman baris gilir, sesi aktif atau saiz cache. Anda mendaftarkan fungsi yang diambil sampelnya oleh Micrometer apabila diperlukan.

registry.gauge("orders.queue.size",
    orderQueue, q -> q.size());

Ringkasan Taburan

DistributionSummary menjejaki taburan nilai sewenang-wenangnya, seperti saiz muatan permintaan, serta menyediakan kiraan, jumlah dan persentil.

DistributionSummary summary = registry.summary("orders.amount");
summary.record(order.getTotal().doubleValue());

Pemasaan Deklaratif dengan @Timed

Anotasi @Timed mengukur masa kaedah tanpa instrumentasi manual. Anotasi ini memerlukan bean TimedAspect didaftarkan.

@Bean
TimedAspect timedAspect(MeterRegistry registry) {
    return new TimedAspect(registry);
}

@Timed(value = "orders.process.time")
public void process(Order o) { /* ... */ }

Mengeksport ke Prometheus

Tambah kebergantungan pendaftar Prometheus dan dedahkan titik akhir prometheus. Micrometer kemudian menerbitkan titik akhir pengikisan dengan semua meter anda.

# dependency: micrometer-registry-prometheus
management:
  endpoints:
    web:
      exposure:
        include: prometheus,metrics,health
# scrape: /actuator/prometheus

Disiplin Kardinaliti

Perangkap metrik terbesar ialah tag berkardinaliti tinggi. Jangan sekali-kali menandai dengan id pengguna, id permintaan atau URL mentah — setiap nilai unik menggandakan siri masa dan boleh membebankan bahagian belakang anda.

Semakan Pantas

Uji pemahaman anda tentang jenis meter.

Rumusan

Micrometer menginstrumentasikan aplikasi anda.

  • Suntik MeterRegistry yang dikonfigurasi secara automatik
  • Counter untuk kiraan monotonik, Timer untuk kependaman
  • Gauge untuk nilai yang berubah-ubah, DistributionSummary untuk taburan
  • Gunakan tag yang terhad; elakkan kardinaliti tinggi
  • Eksport ke Prometheus dan perkhidmatan seumpamanya melalui kebergantungan pendaftar
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
24
Pelajaran
93

Soalan Lazim

Adakah pelajaran “Metrik Tersuai dengan Micrometer” percuma?

Ya — teks penuh “Metrik Tersuai dengan Micrometer” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Perkhidmatan Mikro dan API REST Spring Boot 4, tingkat taraf kepada CoddyKit PRO. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Metrik Tersuai dengan Micrometer”?

Rekod metrik aplikasi anda sendiri. Anda berlatih Perkhidmatan Mikro dan API REST Spring Boot 4 menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Perkhidmatan Mikro dan API REST Spring Boot 4?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Metrik Tersuai dengan Micrometer” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 ini?

Ya. Setiap pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mendayakan Titik Akhir Actuator
  2. Penunjuk Kesihatan
  3. Metrik Tersuai dengan Micrometer
  4. Melindungi Titik Akhir Actuator
← Kembali ke Perkhidmatan Mikro dan API REST Spring Boot 4