Membuat metrik dari log

Halaman ini menjelaskan cara membuat metrik baru dari log yang ada dengan men-deploy resource kustom LoggingRule di perlengkapan air-gapped Google Distributed Cloud (GDC).

Aturan perekaman memungkinkan Anda menghitung terlebih dahulu ekspresi yang sering digunakan atau mahal secara komputasi, sehingga meningkatkan performa untuk dasbor dan pemberitahuan. Ditentukan dalam resource kustom LoggingRule, aturan ini menghasilkan metrik deret waktu baru dari log yang ada, sehingga meningkatkan kemampuan pengamatan data.

Dengan menyimpan hasil yang telah dihitung sebelumnya, aturan perekaman menghilangkan perhitungan berulang setiap kali ekspresi diperlukan. Metode ini mempercepat waktu kueri secara signifikan, terutama untuk dasbor dan pemberitahuan kompleks yang memerlukan evaluasi berulang dari ekspresi yang sama. Pada dasarnya, resource LoggingRule memungkinkan Anda mendapatkan metrik baru dari data logging yang ada dengan menentukan kalkulasi yang diperlukan dalam aturan perekamannya.

Sebelum memulai

Untuk mendapatkan izin yang Anda perlukan untuk mengelola LoggingRuleresource kustom, minta Admin IAM Organisasi atau Admin IAM Project Anda untuk memberi Anda salah satu LoggingRuleperan terkait.

Bergantung pada tingkat akses dan izin yang Anda perlukan, Anda mungkin mendapatkan peran pembuat, editor, atau pelihat untuk resource ini di organisasi atau project. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan izin IAM.

Membuat aturan perekaman

Untuk membuat aturan perekaman, tentukan nama untuk log yang direkam dan ekspresi yang valid yang menghasilkan nilai numerik. Ekspresi ini, saat dievaluasi, akan menghasilkan metrik baru. Deploy resource kustom LoggingRule di namespace project Anda di server Management API untuk mengaktifkan aturan perekaman.

Untuk mengetahui informasi selengkapnya tentang aturan perekaman, lihat https://grafana.com/docs/loki/latest/rules/.

Ikuti langkah-langkah berikut untuk membuat aturan perekaman di namespace project Anda:

  1. Tentukan project GDC tempat Anda ingin membuat aturan perekaman.
  2. Buat file YAML yang menentukan resource kustom LoggingRule.

    Spesifikasi LoggingRule lengkap menunjukkan contoh untuk aturan perekaman berbasis log. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API.

  3. Ganti nilai berikut dalam file YAML sesuai kebutuhan Anda:

    Nama kolom Deskripsi
    namespace Namespace project.
    name Nama untuk konfigurasi aturan.
    source Sumber log untuk aturan perekaman. Opsi yang valid adalah operational dan audit.
    interval Durasi interval evaluasi aturan dalam detik.
    limit Opsional. Jumlah maksimum pemberitahuan. Setel ke 0 untuk pemberitahuan tanpa batas.
    recordRules Definisi untuk menghitung metrik baru.
    recordRules.record Nama rekaman untuk metrik baru. Nilai harus berupa nama metrik yang valid yang menentukan deret waktu tempat hasil disimpan.
    recordRules.expr Ekspresi LogQL untuk aturan log, yang harus dievaluasi ke nilai numerik.
    recordRules.labels Opsional. Pasangan nilai kunci label yang akan ditambahkan ke atau menggantikan metrik baru.
  4. Simpan file YAML.

  5. Terapkan konfigurasi LoggingRule ke server Management API dalam namespace yang sama dengan aturan perekaman Anda:

    kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_RULE_NAME.yaml
    

    Ganti kode berikut:

    • KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API.
    • LOGGING_RULE_NAME: nama file definisi LoggingRule.

Spesifikasi LoggingRule lengkap

Resource kustom LoggingRule berisi aturan perekaman yang menjelaskan kondisi untuk membuat metrik baru berdasarkan log yang ada untuk kemampuan pengamatan.

File YAML berikut menunjukkan template untuk resource kustom LoggingRule. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API.

# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
  # Choose a namespace that matches the project namespace.
  # The alert or record is produced in the same namespace.
  namespace: PROJECT_NAMESPACE
  name: LOGGING_RULE_NAME
spec:
  # Choose the log source to base alerts on (operational or audit logs).
  # Optional.
  # Valid options: 'operational' and 'audit'
  # Default value: 'operational'
  source: operational

  # Rule evaluation interval.
  interval: 60s

  # Configure the limit for the number of alerts.
  # A value of '0' means no limit.
  # Optional.
  # Default value: '0'
  limit: 0

  # Configure recording rules to generate new metrics based on existing logs.
  # Recording rules precompute expressions that are frequently needed or computationally expensive.
  # Results are saved as a new set of time series.
  recordRules:
    # Define the time series where you want to write the recording rule.
    # The value must be a valid metric name.
  - record: MyMetricsName

    # Define the LogQL expression to evaluate for this rule.
    expr: rate({service_name="bob-service"} [1m])

    # Define labels to add or overwrite.
    # Map of key-value pairs.
    # Optional.
    labels:
      verb: read

Ganti kode berikut:

  • PROJECT_NAMESPACE: namespace project Anda.
  • LOGGING_RULE_NAME: nama file definisi LoggingRule.