API Bahagian Belakang Perusahaan NestJS · Pelajaran

Pemantauan dengan Prometheus

Sepadukan Prometheus untuk mengumpulkan metrik dan bina papan pemuka bagi memantau prestasi serta kesihatan aplikasi NestJS anda.

Pelajaran 3 daripada 312 langkah

Pemantauan dengan Prometheus ialah pelajaran API Bahagian Belakang Perusahaan NestJS percuma di CoddyKit. Ini ialah pelajaran 3 daripada 3. 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 API Bahagian Belakang Perusahaan NestJS, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus API Bahagian Belakang Perusahaan NestJS merangkumi sejumlah 3 pelajaran.

Mengapa Memantau App Anda?

Pemantauan amat penting untuk memahami kesihatan dan prestasi aplikasi anda. Pemantauan membantu anda mengesan masalah lebih awal, menyahpepijat masalah dan memastikan pengalaman pengguna yang lancar.

  • Prestasi: Adakah API anda cukup pantas?
  • Ketersediaan: Adakah perkhidmatan anda dalam talian dan memberikan respons?
  • Ralat: Adakah terdapat kegagalan yang tidak dijangka?
  • Penggunaan Sumber: Berapakah CPU, memori atau ruang cakera yang sedang digunakan?

Tanpa pemantauan, anda seolah-olah bekerja tanpa mengetahui keadaan sebenar!

Mengenali Prometheus

Prometheus ialah sistem pemantauan sumber terbuka yang direka untuk kebolehpercayaan dan kebolehskalaan. Ia mengumpulkan metrik daripada aplikasi dan infrastruktur anda, lalu menyimpannya sebagai data siri masa.

Anggaplah ia sebagai pemerhati yang sentiasa berwaspada, yang terus mengumpulkan titik data tentang tingkah laku sistem anda dari semasa ke semasa.

Seni Bina Prometheus

Prometheus berfungsi dengan mengikis (menarik) metrik daripada sasaran yang dikonfigurasikan. Komponen utama:

  • Pelayan Prometheus: Komponen teras yang mengikis, menyimpan dan membuat pertanyaan terhadap metrik.
  • Pengeksport: Ejen khusus yang mendedahkan metrik sedia ada daripada sistem pihak ketiga (seperti pangkalan data dan OS) dalam format yang serasi dengan Prometheus.
  • Pustaka Klien: Berintegrasi terus ke dalam kod aplikasi untuk mendedahkan metrik tersuai (yang akan kita gunakan dalam NestJS).
  • Grafana: Alat papan pemuka popular untuk menggambarkan data Prometheus.

NestJS dan `nestjs-prometheus`

Untuk mengintegrasikan Prometheus dengan aplikasi NestJS, kami menggunakan pustaka nestjs-prometheus. Pustaka ini memudahkan pendedahan metrik dan penciptaan metrik tersuai.

Pustaka ini bertindak sebagai jambatan, yang membolehkan app NestJS anda menjana dan mendedahkan metrik untuk dikikis oleh pelayan Prometheus.

Menyediakan `nestjs-prometheus`

Mula-mula, pasang pakej:

npm install --save @willsoto/nestjs-prometheus prom-client

Kemudian, import PrometheusModule ke dalam modul akar anda (contohnya, AppModule) dan konfigurasikannya:

import { Module } from '@nestjs/common';
import { PrometheusModule } from '@willsoto/nestjs-prometheus';
import { AppController } from './app.controller';

@Module({
  imports: [
    PrometheusModule.register({
      path: '/metrics',
      collectDefaultMetrics: true
    })
  ],
  controllers: [AppController],
  providers: [],
})
export class AppModule {}

Mendedahkan Metrik HTTP Lalai

Dengan collectDefaultMetrics: true, nestjs-prometheus secara automatik mendedahkan metrik proses Node.js asas. Untuk turut mendedahkan metrik permintaan HTTP, anda perlu menambahkan pencegat.

Kemas kini main.ts anda untuk mendayakan ciri ini:

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { PrometheusInterceptor } from '@willsoto/nestjs-prometheus';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useGlobalInterceptors(new PrometheusInterceptor());
  await app.listen(3000);
  console.log('App is running on port 3000');
  // Access metrics at http://localhost:3000/metrics
}
bootstrap();

Metrik Tersuai: Pembilang

Pembilang ialah metrik kumulatif yang mewakili satu nilai yang meningkat secara monoton. Nilainya hanya boleh meningkat atau ditetapkan semula kepada sifar apabila dimulakan semula. Gunakannya untuk perkara seperti jumlah permintaan yang dilayan, ralat yang berlaku atau item yang diproses.

Berikut ialah cara menyuntik dan menggunakan pembilang tersuai dalam perkhidmatan:

import { Injectable } from '@nestjs/common';
import { InjectMetric } from '@willsoto/nestjs-prometheus';
import { Counter } from 'prom-client';

@Injectable()
export class UserService {
  constructor(
    @InjectMetric('users_created_total') public usersCreatedCounter: Counter,
  ) {}

  createUser(name: string): string {
    // Logic to create a user...
    this.usersCreatedCounter.inc(); // Increment the counter
    return `User ${name} created`;
  }
}

Metrik Tersuai: Tolok

Tolok ialah metrik yang mewakili satu nilai berangka yang boleh naik atau turun secara sewenang-wenangnya. Gunakannya untuk perkara seperti penggunaan memori semasa, bilangan permintaan serentak atau saiz baris gilir semasa.

Mari jejaki sambungan aktif dengan Tolok:

import { Injectable } from '@nestjs/common';
import { InjectMetric } from '@willsoto/nestjs-prometheus';
import { Gauge } from 'prom-client';

@Injectable()
export class ConnectionService {
  constructor(
    @InjectMetric('active_connections_count') public activeConnectionsGauge: Gauge,
  ) {}

  connectUser(): void {
    // User connects logic...
    this.activeConnectionsGauge.inc(); // Increment active connections
  }

  disconnectUser(): void {
    // User disconnects logic...
    this.activeConnectionsGauge.dec(); // Decrement active connections
  }
}

Jenis Metrik Lain

Prometheus turut menawarkan jenis metrik lain untuk kes penggunaan yang lebih khusus:

  • Histogram: Mengambil sampel pemerhatian (contohnya, tempoh permintaan) dan mengiranya dalam baldi yang boleh dikonfigurasikan. Berguna untuk memahami taburan dan persentil.
  • Ringkasan: Serupa dengan Histogram tetapi mengira kuantil yang boleh dikonfigurasikan dalam tetingkap masa bergerak. Sesuai untuk kependaman.

Untuk kebanyakan senario biasa, Pembilang dan Tolok selalunya mencukupi.

Menggambarkan dengan Grafana

Walaupun Prometheus mengumpulkan metrik, Grafana biasanya digunakan untuk menggambarkannya. Grafana bersambung kepada Prometheus sebagai sumber data dan membolehkan anda membina papan pemuka yang berkuasa serta boleh disesuaikan.

Anda boleh mencipta graf, carta dan amaran berdasarkan metrik yang didedahkan oleh aplikasi NestJS anda, lalu memperoleh gambaran masa nyata tentang prestasi dan kesihatannya.

Semakan Pantas

Anda telah mempelajari cara menyediakan pemantauan Prometheus dalam NestJS.

Ulang Kaji: Pemantauan dengan Prometheus

Dalam pelajaran ini, anda mempelajari kepentingan pemantauan dan cara Prometheus membantu mengumpulkan metrik siri masa daripada aplikasi NestJS anda.

  • Kami meneroka seni bina Prometheus dan komponennya.
  • Anda melihat cara mengintegrasikan nestjs-prometheus untuk mendedahkan metrik lalai dan tersuai.
  • Kami membezakan jenis metrik Pembilang dan Tolok.
  • Akhir sekali, kami menyentuh cara Grafana digunakan untuk penggambaran yang berkuasa.

Pemantauan ialah amalan penting untuk mengekalkan aplikasi yang kukuh dan berprestasi tinggi!

Percuma untuk bermula

Pelajari TypeScript 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
20
Pelajaran
76

Soalan Lazim

Adakah pelajaran “Pemantauan dengan Prometheus” percuma?

Ya — teks penuh “Pemantauan dengan Prometheus” 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 API Bahagian Belakang Perusahaan NestJS, tingkat taraf kepada CoddyKit PRO. Kursus API Bahagian Belakang Perusahaan NestJS merangkumi sejumlah 3 pelajaran.

Apakah yang akan saya pelajari dalam “Pemantauan dengan Prometheus”?

Sepadukan Prometheus untuk mengumpulkan metrik dan bina papan pemuka bagi memantau prestasi serta kesihatan aplikasi NestJS anda. Anda berlatih API Bahagian Belakang Perusahaan NestJS 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 API Bahagian Belakang Perusahaan NestJS?

Tiada pengalaman terdahulu diperlukan. Pembelajaran API Bahagian Belakang Perusahaan NestJS 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 3.

Berapa lamakah pelajaran “Pemantauan dengan Prometheus” 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 API Bahagian Belakang Perusahaan NestJS ini?

Ya. Setiap pelajaran API Bahagian Belakang Perusahaan NestJS 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. Pengehadan Kadar dan Pendikit
  2. Pengelogan dengan Winston/Pino
  3. Pemantauan dengan Prometheus
← Kembali ke API Bahagian Belakang Perusahaan NestJS