Lewati ke isi

kerangka jaringan

Berikut adalah beberapa tips untuk melengkapi aplikasi web Anda dengan alat deteksi.

Integrasi

Jika Anda menggunakan salah satu perpustakaan berikut, silakan tinjau dokumentasi integrasi:

Jika tidak, periksa apakah server Anda menggunakan WSGI atau ASGI dan periksa integrasi yang sesuai.

Tangkap permintaan server HTTP dan header respons

Beberapa metode, seperti logfire.instrument_fastapi(), memungkinkan Anda untuk melewati capture_headers=True untuk mencatat semua header permintaan dan respons dalam rentang, yang biasanya hanya Anda butuhkan.

Jika ingin kontrol lebih, ada tiga variabel lingkungan yang menginformasikan pustaka deteksi OpenTelemetry untuk menangkap header permintaan dan respons:

  • OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST
  • OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE
  • OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS

Masing-masing menerima daftar ekspresi reguler yang dipisahkan koma yang peka huruf besar / kecil yang diperiksa dengan nama header. Dua yang pertama menentukan header permintaan / respons mana yang ditangkap dan ditambahkan ke properti bentang. Yang ketiga menentukan nilai header mana yang akan diedit.

Misalnya, untuk menangkap semua header, buat pengaturan berikut:

OTEL _ INSTRRUMENTASI _ HTTP _ CAPTURE _ HEADERS _ SERVER _ REQUEST =. "*"
OTEL _ INSTRRUMENTASI _ HTTP _ CAPTURE _ HEADERS _ SERVER _ RESPONSE =. "*"

(Inilah yang dilakukan capture_headers=True.)

Spesialisasi dalam menangkap header permintaan content-type dan meminta header dimulai dengan X-:

OTEL _ INSTRRUMENTASI _ HTTP _ CAPTURE _ HEADERS _ SERVER _ REQUEST = "tipe konten, X-. *"

Ganti nilai header Authorization dengan [REDACTED] untuk menghindari mengungkapkan kredensial pengguna.

OTEL _ INSTRRUMENTASI _ HTTP _ CAPTURE _ HEADERS _ SANITIZE _ FIELDS = "Otorisasi"

(Meskipun biasanya lebih baik mengandalkan fungsi pembersihan Logfire.)

Kueri Durasi permintaan HTTP per persentil

Secara umum, menarik untuk memvisualisasikan durasi permintaan HTTP untuk setiap persentil. Tidak seperti rata-rata, yang dapat dipengaruhi oleh ekstrem, persentil memungkinkan kita untuk memahami durasi maksimum untuk 50%, 90%, 95%, atau 99% permintaan.

Berikut ini adalah contoh kueri untuk menghitung persentil tersebut untuk durasi permintaan HTTP:

DENGAN kumpulan data AS (
  PILIH
    time _ bucket ('% time _ bucket _ durasi%', mulai _ timestamp) AS x,
    (Ekstrak (epoch dari end _ timestamp - start _ timestamp) * 1000) sebagai durasi _ ms
  DARI catatan
  Atribut MANA? 'metode htp.'
)
PILIH
  X,
  Percentile _ cont (0.99) WITHIN GROUP (PESAN DENGAN durasi _ ms) sebagai persentil _ 99,
  Percentile _ cont (0.95) WITHIN GROUP (PESAN DENGAN durasi _ ms) sebagai persentil _ 95,
  Percentile _ cont (0.90) WITHIN GROUP (PESAN DENGAN durasi _ ms) sebagai persentil _ 90,
  Percentile _ cont (0.50) WITHIN GROUP (PESAN DENGAN durasi _ ms) sebagai persentil _ 50
DARI kumpulan data
GRUP OLEH x
PESAN OLEH x DESC;

Perhatikan bagaimana kami memfilter rekaman dengan set atribut http.method. Ini adalah titik awal yang baik untuk mengambil jejak yang terkait dengan permintaan HTTP, tetapi tergantung pada pengaturan Anda, Anda mungkin perlu menambahkan lebih banyak filter.

Kueri ini adalah kandidat yang baik untuk grafik deret waktu di dasbor.

Durasi permintaan per persentil seperti grafik Seri Waktu


本文总阅读量次