traceparent Çözücü — W3C Trace Context
Hex basamağı saymayı bırakın. Ücretsiz çevrimiçi traceparent çözücü — tarayıcınızda çalışır, yükleme yok. Trace ID, span ID, 8 trace-flags biti, tracestate, Datadog/X-Ray/B3.
- Sürüm
00- Trace ID
4bf92f3577b34da6a3ce929d0e0e4736- Parent ID (span ID)
00f067aa0ba902b7- Trace flags
01
| Bit | Maske | Ad | Durum |
|---|---|---|---|
| 0 | 0x01 | sampled | 1 |
| 1 | 0x02 | random-trace-id | 0 |
| 2 | 0x04 | reserved | 0 |
| 3 | 0x08 | reserved | 0 |
| 4 | 0x10 | reserved | 0 |
| 5 | 0x20 | reserved | 0 |
| 6 | 0x40 | reserved | 0 |
| 7 | 0x80 | reserved | 0 |
Bunları bitwise AND ile okuyun. Baytın tamamını 01 ile karşılaştırmak, ayrılmış bir bit de taşıyan her izlemeyi yanlış raporlar.
- x-datadog-trace-id
11803532876627986230- x-datadog-tags: _dd.p.tid
4bf92f3577b34da6- x-datadog-parent-id
67667974448284343- AWS X-Ray trace ID
1-4bf92f35-77b34da6a3ce929d0e0e4736- b3 (single header)
4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-1- X-B3-TraceId
4bf92f3577b34da6a3ce929d0e0e4736- X-B3-SpanId
00f067aa0ba902b7- X-B3-Sampled
1
Datadog, trace ID'nin alt 64 bitini ondalık dize olarak, üst 64 bitini ise bir etikette onaltılık olarak taşır. 128 bitin tamamını ondalık geçmek, günlüklerinizden aldığınız bir trace ID'nin arayüzde hiçbir şey bulamamasının klasik sebebidir.
Bir X-Ray kimliği 32 bitlik bir zaman damgası gömer; W3C trace ID ise hiçbir zaman damgası taşımaz. Aşağıdaki tarih yalnızca kimlik gerçekten X-Ray'de üretildiyse anlamlıdır.
| # | Anahtar | Değer | Durum |
|---|---|---|---|
| 1 | rojo | 00f067aa0ba902b7 | OK |
| 2 | congo | t61rcWkgMzE | OK |
traceparent Biçimi: Alan Anatomisi
| Alan | Hex basamağı | Bayt | Anlamı | Geçersiz değer |
|---|---|---|---|---|
| version | 2 | 1 | Biçim sürümü. Bugün her zaman 00; ff yasaktır. | ff |
| trace-id | 32 | 16 | İzlemenin tamamını baştan sona tanımlar. | Tamamı sıfır |
| parent-id | 16 | 8 | İsteği değil, çağıran span'i tanımlar. | Tamamı sıfır |
| trace-flags | 2 | 1 | 8 bitlik bir alan — bit bit okuyun, asla mantıksal değer olarak değil. | — |
trace-flags Değerleri: 00, 01, 02 ve 03 Açıklaması
| Onaltılık | İkilik | sampled | random-trace-id | Anlamı |
|---|---|---|---|---|
| 00 | 00000000 | 0 | 0 | Akış yukarısı örneklememeyi seçti — servisinize değil çağırana bakın. |
| 01 | 00000001 | 1 | 0 | Normal şekilde kaydedildi. Çoğu zaman gördüğünüz budur. |
| 02 | 00000010 | 0 | 1 | Rastgele trace ID bildirildi ama örneklenmedi. |
| 03 | 00000011 | 1 | 1 | Kaydedildi ve trace ID düzgün dağılımlı rastgele olarak bildirildi. |
bit 0 — Çağıran bu izlemeyi kaydetti. Temiz olması, bilerek kaydetmemeyi seçtiği anlamına gelir.
bit 1 — Level 2: trace ID'nin en sağdaki 7 baytı düzgün dağılımlı rastgeledir.
bit 2-7 — Ayrılmış. Yok sayılmalı ve giden isteklerde temizlenmelidir.
Doğrudan W3C Trace Context tavsiyesi ve Level 2 aday tavsiyesi temel alınarak geliştirildi; ayrıştırıcı, şartnamenin adını verdiği her geçerli ve geçersiz biçim için birim testleriyle kapsandı.
traceparent Başlığı Nedir?
traceparent, dağıtık bir izlemeyi bir servisten diğerine taşıyan HTTP başlığıdır. Standartlaşmadan önce her izleme sağlayıcısı bağlamı kendi başlığında yayıyordu; bu yüzden sistemler arasında geçen bir istek sınırda kimliğini yitiriyordu. W3C Trace Context şartnamesi bunu tek ve bilinçli olarak küçük tutulmuş bir biçimle çözdü: version-trace-id-parent-id-trace-flags, tirelerle birleştirilmiş dört onaltılık alan, güncel sürümde toplam 55 karakter.
Her alanın tek bir işi vardır. version bugün her zaman 00'dır ve ff doğrudan yasaklanmıştır. trace-id, isteğin tamamını baştan sona tanımlayan 16 bayttır — her adımda sabit kalır. parent-id, bir önceki çağıranın span'ini tanımlayan 8 bayttır; bu yüzden trace-id'nin aksine her adımda değişir. trace-flags baytı ise kafa karışıklığının yoğunlaştığı yerdir: 01 açık ara en yaygın değer olduğu için mantıksal bir değer gibi görünür, oysa sekiz bittir. 0. bit sampled'dır. Trace Context Level 2 ile eklenen 1. bit random-trace-id'dir ve trace ID'nin en sağdaki yedi baytının düzgün dağılımlı rastgele olduğunu bildirir; böylece akış aşağısındaki sistemler bu baytlar üzerinden örnekleme veya parçalama yapabilir. Kalan altı bit ayrılmıştır ve alanın eşitlikle karşılaştırılmak yerine bitwise AND ile okunmasının sebebi tam olarak budur.
Yanındaki tracestate başlığı ise sağlayıcıya özgü anahtar-değer çiftlerini taşır ve 32 üyeyle sınırlıdır. Bu üst sınır kafa karıştırıcı bir belirtiyi açıklar: kenarda var olan sağlayıcı verisinin birkaç adım sonra kaybolması, aracıların liste sınırı aşınca girdileri düşürmeye başlamasındandır. Başlık, OpenTelemetry onu benimsedikten sonra gerçekten evrensel hale geldi ve bu sayfa hepsini çözer — alanları, bitleri, tracestate üyelerini ve diğer yayılım biçimlerindeki karşılık kimlikleri — hiçbir yere hiçbir şey göndermeden.
# The header as it travels on the wire
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE
# Read the four fields apart
# version 00
# trace-id 4bf92f3577b34da6a3ce929d0e0e4736 (16 bytes, whole request)
# parent-id 00f067aa0ba902b7 (8 bytes, calling span)
# trace-flags 01 (bit 0 set = sampled)
# Send one yourself
$ curl -H 'traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01' \
https://example.com/api Temel Özellikler
Her Alan Ayrılmış ve Kopyalanabilir
version, trace-id, parent-id ve trace-flags kendi satırını ve kendi kopyalama düğmesini alır; böylece 32 karakterlik bir trace ID'yi bir sorguya taşımak dikkatli bir sürükleme yerine tek tıklamaya iner.
trace-flags Sekiz Bit Olarak Okunur
Bayrak baytı onaltılık maskeleriyle birlikte sekiz konumun tamamına açılır. 0. bit sampled, 1. bit Level 2 random-trace-id bayrağıdır ve ayrılmış bitler sessizce atılmak yerine gösterilir.
Datadog, X-Ray ve B3 Dönüşümü
Ondalık Datadog trace ID olarak alt 64 bit, onunla yolculuk eden etiket olarak üst 64 bit, X-Ray'in 1-{8}-{24} biçimi ve hem tek hem çok başlıklı B3 düzenleri — hepsi BigInt ile hesaplanır, hiçbir şey taşmaz.
Yalnızca Hüküm Değil, Tanı
Tamamı sıfır bir trace ID, hiç ilklendirilmemiş bir izleme olarak açıklanır; temizlenmiş bir sampled biti ise akış yukarısında verilmiş bir karar olarak. Hangisiyle karşı karşıya olduğunuzu bilmek genellikle hata ayıklama oturumunun tamamıdır.
32 Üyelik Üst Sınırla tracestate
Üyeler anahtar ve değer doğrulamasıyla tek tek listelenir ve şartnamenin sınırına göre bir sayaç tutulur — sağlayıcı verisinin birkaç adım sonra neden kaybolduğunu açıklayan sınır tam da budur.
Hiçbir Şey Tarayıcınızdan Çıkmaz
Ayrıştırma, bağımlılığı ve ağ çağrısı olmayan düz dize işlemleri ile BigInt aritmetiğidir ve her derlemede otomatik bir sözleşme testiyle doğrulanır. Bağlantıyı kopyala, hiçbir zaman iletilmeyen URL parçasını kullanır.
traceparent Örnekleri, Çözümlenmiş
Şartnamenin kendi örneği, çözümlenmiş
00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
version 00 · trace-id 4bf92f3577b34da6a3ce929d0e0e4736 · parent-id 00f067aa0ba902b7 · trace-flags 01 (sampled)
Tire ile ayrılmış dört alan; version 00 için toplam 55 karakter. trace-id, isteğin her servisi geçerken taşıdığı bütünsel kimliktir; parent-id — sıkça span ID denir — yalnızca kendisinden bir önceki çağıranı tanımlar, bu yüzden her adımda değişirken trace-id sabit kalır. Sondaki 01 mantıksal bir değer değil, tam bir bayttır: bit 0 ayarlanmıştır, yani çağıran bu izlemeyi kaydetmiştir.
trace-flags 00 — çağıran kaydetmemeye karar verdi
00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-00
Geçerli başlık · sampled biti temiz
Bu başlık tümüyle geçerlidir ve asıl mesele de budur. Temizlenmiş bir sampled biti, servisinizdeki bir kusur değil akış yukarısından gelen bir talimattır: sizi çağıran taraf kendi örnekleyicisini çalıştırmış ve kaydetmemeyi seçmiştir. Eksik span'leri kendi yapılandırmanızda aramak burada saatler yakar. Sorulması gereken soru şudur: sizi hangi servis çağırıyor, üst span'i gönderiyor ve izlemeyi örneklememeye karar veriyor.
Tamamı sıfır bir trace ID izlemenin hiç başlamadığını gösterir
00-00000000000000000000000000000000-00f067aa0ba902b7-01
Geçersiz — tamamı sıfır trace-id
Şartname tamamı sıfır bir trace-id'yi geçersiz sayar ve traceparent başlığının tümüyle yok sayılmasını ister. Pratikte neye işaret ettiğini bilmek işe yarar: "henüz verisi olmayan bir izleme" değil, hiç ilklendirilmemiş bir SDK ya da yer tutucu bir başlık enjekte eden bir ara katmandır. Aynı kural tamamı sıfır parent-id için de geçerlidir.
Aynı trace ID'nin Datadog biçimi
00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
x-datadog-trace-id 11803532876627986230 · _dd.p.tid 4bf92f3577b34da6
Datadog, 128 bitlik bir trace ID'nin alt 64 bitini ondalık bir dize olarak, üst 64 bitini ise ayrı bir etikette onaltılık olarak taşır. 128 bitin tamamını ondalık verirseniz hiçbir şeyle eşleşmeyen bir sayı elde edersiniz; bu dönüşümün tracer hata takip sistemlerinde tekrar tekrar karşımıza çıkmasının sebebi tam da budur. Buradaki alt yarı a3ce929d0e0e4736'dır ve 64 bit bir JavaScript sayısının tutabileceğinin ötesindedir, bu yüzden bu sayfa aritmetiği BigInt ile yapar.
traceparent Çözücü Nasıl Kullanılır
- 1
traceparent başlığını yapıştırın
Ham başlık değerini bırakın — örneğin 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01. Çözümleme siz yazdıkça olur; basılacak bir düğme yoktur.
- 2
Dört alanı ayrı ayrı okuyun
version, trace-id, parent-id ve trace-flags kendi satırlarına ayrılır ve her biri kendi kopyalama düğmesiyle gelir; böylece 32 karakteri elle seçmeden yalnızca trace ID'yi bir sorguya taşıyabilirsiniz.
- 3
Bayrakları bit bit denetleyin
trace-flags baytı maskeleriyle birlikte sekiz bitin tamamına açılır; böylece sampled ve Level 2 random-trace-id bayrağı iki karakterlik bir değerin içinde gizlenmek yerine tek tek görünür.
- 4
Arka ucunuzun biçimine dönüştürün
Datadog, AWS X-Ray ve her iki B3 biçimi hemen altta üretilir; buna Datadog'un beklediği alt 64 bitlik ondalık trace ID ve onunla birlikte yolculuk eden üst 64 bitlik etiket de dahildir.
- 5
tracestate ekleyin ve sonucu paylaşın
Bir tracestate başlığı yapıştırarak üyelerini tek tek doğrulamayla ve 32 üyelik sınıra göre sayaçla listeleyin, ardından Bağlantıyı kopyala ile tam durumu bir kayda düşebileceğiniz URL olarak alın.
Yaygın traceparent Hataları
Bayrak baytının tamamını 01 ile karşılaştırmak
Bu, sekiz bitlik bir alanı numaralandırma gibi ele alır. Hem örneklenmiş olan hem de Level 2 random-trace-id bayrağını taşıyan bir izlemenin bayrakları 03'tür ve eşitlik denetimi onu örneklenmemiş olarak raporlar.
if (traceFlags === 0x01) { record(); } if (traceFlags & 0x01) { record(); } 128 bitin tamamını tek bir ondalık sayıya çevirmek
Datadog alt 64 biti ondalık, üst 64 biti ise ayrı bir etikette onaltılık bekler. Tüm değeri tek bir ondalık sayı olarak geçirmek hiçbir şeyle eşleşmeyen bir kimlik üretir.
x-datadog-trace-id: 100985939111033328018442752961257817910
x-datadog-trace-id: 11803532876627986230 x-datadog-tags: _dd.p.tid=4bf92f3577b34da6
00 dışındaki her sürümü reddetmek
Şartname, ayrıştırıcılardan daha yüksek bir sürümde tanıdıklarını okumasını ve sondaki fazladan alanlara tolerans göstermesini ister. Doğrudan reddetmek izlemeyi baştan başlatır ve sınırdaki bağı koparır.
if (version !== '00') throw new Error('bad traceparent'); if (version !== '00' && header.length >= 55) { /* parse the known prefix */ } Büyük harfli onaltılık üretmek
Dilbilgisi yalnızca küçük harfe izin verir. Büyük harfli bir trace ID doğru değeri taşır ama uyumlu bir alıcı tarafından yine de reddedilir; bu da onu gözle yakalaması özellikle sinir bozucu bir hata yapar.
traceparent: 00-4BF92F3577B34DA6A3CE929D0E0E4736-00F067AA0BA902B7-01
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
traceparent Çözücü ile Neler Yapabilirsiniz
- Bir izlemenin neden span'i olmadığını çözün
- Gelen başlığı yapıştırın ve sampled bitini okuyun. Temizse izleme zaten kaydedilmeyecekti ve yanıt sizin araç yerleşiminizde değil çağıranda saklıdır — kendi örnekleyici yapılandırmanızı denetlemeye harcanacak epey zamanı kurtaran bir ayrım.
- Arka ucunuzun bulamadığı izlemeyi bulun
- Uygulama günlüklerinden kopyalanan bir trace ID Datadog'da hiçbir şey döndürmüyorsa suçlu genellikle biçimdir. Burada dönüştürerek API'nin beklediği alt 64 bitlik ondalık kimliği ve ona eşlik etmesi gereken üst 64 bitlik etiketi görün.
- Gateway'inizin enjekte ettiği başlıkları doğrulayın
- Proxy'ler ve service mesh'ler girişte izleme bağlamı üretir. Hatanın akış aşağısında olduğunu varsaymadan önce gerçekte ne geldiğini yapıştırıp uzunluğu, küçük harfli onaltılık yazımı ve sıfırdan farklı kimlikleri teyit edin.
- Bir üretim izlemesini elle yeniden üretin
- Gerçek bir istekten aldığınız başlığı bir hazırlık uç noktasına karşı yeniden oynatarak aynı izlemeyi baştan takip edin. İsteği curl komut oluşturucu ile kurun ve başlığı doğrudan içine yapıştırın.
- Ekibinize trace context'i anlatın
- Bu sayfadaki alan anatomisi ve trace-flags tabloları işaret edebileceğiniz durağan bir başvuru malzemesidir; hazır düğmeler de kimsenin bir servisi bozmasına gerek kalmadan her hata biçimini gösterir.
W3C Trace Context Doğrulayıcı Nasıl Çalışır
- Dört Alanlı Dilbilgisi
- version "-" trace-id "-" parent-id "-" trace-flags; tamamı küçük harfli onaltılık. version 2, trace-id 32, parent-id 16 ve trace-flags 2 basamaktır — 52 hex basamağı artı 3 tire, version 00 için tam olarak 55 karakter. Büyük harfli onaltılık yazım, değer doğru görünse bile başlığı geçersiz kılar; tamamı sıfır trace-id ile tamamı sıfır parent-id ise boş değil, açıkça geçersizdir.
- trace-flags Bir Bit Alanıdır
- 0. bit (maske 0x01) sampled'dır: ayarlıysa çağıran izleme verisini kaydetmiş olabilir. Level 2 ile gelen 1. bit (maske 0x02) random-trace-id'dir: ayarlıysa trace-id'nin en sağdaki 7 baytı düzgün dağılımla rastgele seçilmiş olmalıdır ve bu, akış aşağısındaki sistemlerin o baytlar üzerinden örnekleme veya parçalama yapmasına imkân verir. 2 ile 7 arasındaki bitler ayrılmıştır; alındığında yok sayılmalı, giden isteklerde temizlenmelidir. Ayrılmış bitler bulunabildiği için alan bitwise AND ile sınanmalıdır — 0x01 ile eşitlik denetimi, ayrılmış bir bit de taşıyan örneklenmiş bir izlemeyi yanlış raporlar.
- Gelecek Sürümlerle İleriye Dönük Uyum
- version bugün 00'dır ve ff yasaktır, ama diğer her şeyi reddeden bir ayrıştırıcı yanlıştır. Şartname, sürüm daha yüksekken ve başlık bilinen biçim kadar uzunken alıcıların ayrıştırmayı denemesini, tanıdıkları alanları okuyup sondaki fazladan veriye tolerans göstermesini, izlemeyi baştan başlatmamasını ister. Bu çözücü kurala uyar: gelecek bir sürüm başarıyla ayrıştırılır ve hata olarak değil uyarı olarak işaretlenir.
- Üretimde Başınızı Ağrıtan tracestate Sınırları
- En fazla 32 liste üyesi — bu sert bir dil bilgisi sınırıdır; liste daha uzunsa başlık geçersiz olur ve alıcılar onu atar. Her anahtar en çok 256 karakterdir ve küçük harf ya da rakamla başlar; Level 2'den itibaren @ bir kiracı ayırıcısı değil, sıradan bir anahtar karakteridir. Her değer 1 ila 256 yazdırılabilir ASCII karakteridir; asla virgül ya da eşittir işareti içermez. Yinelenen anahtarlar geçersizdir, ama boş liste üyelerine açıkça izin verilir — bir aracı bir girdiyi sildiğinde geriye kalan sondaki virgül hâlâ geçerli bir başlık oluşturur. Bundan ayrı olarak: sağlayıcılar birleşik başlığın en az 512 karakterini yaymalıdır; bu bütçeye sığmak için budama gerektiğinde önce 128 karakterden uzun girdiler gitmelidir — konuşkan bir sağlayıcının verisinin, az yazan bir sağlayıcınınkinden önce kaybolmasının sebebi budur.
Trace Context için En İyi Uygulamalar
- Bayrakları bitwise AND ile sınayın
- flags == 0x01 yerine flags & 0x01 yazın. Sekiz bitin altısı gelecekteki kullanımlar için ayrılmıştır ve bunlardan herhangi biri sahada göründüğü anda eşitlik denetimi örneklenmiş izlemeleri yanlış raporlamaya başlar.
- Tamamı sıfır kimliği bozuk bir hat olarak görün
- Bu, hoş görülecek boş bir değer değildir. Başlığı reddedin ve tracer'ını ilklendiremeyen ya da yer tutucu enjekte eden bileşeni bulmaya gidin.
- sampled biti temizken akış yukarısına bakın
- Üst tabanlı örnekleyiciler çağıranın kararını yayar. İzlemeler eksikse kendi yapılandırmanızı denetlemeden önce size örneklemesi kapalı bir üst span'i hangi servisin gönderdiğini belirleyin.
- tracestate'i kısa tutun
- 32 üyelik üst sınır sert bir dil bilgisi sınırıdır — aşıldığı anda başlık geçersizdir. Bundan ayrı olarak, birleşik başlığın yalnızca 512 karakterinin yayılması güvence altındadır ve budama önce 128 karakterden uzun girdileri düşürür. Uzun bir çağrı zincirinden sağ çıkması gereken hiçbir şey tracestate'e ait değildir.
- Bir trace ID'yi asla JavaScript sayısı olarak günlüğe yazmayın
- 128 bitlik bir trace ID ve hatta 64 bitlik bir Datadog kimliği Number.MAX_SAFE_INTEGER sınırını aşar. Bunları dize olarak tutun ve aritmetik gerektiğinde BigInt ile dönüştürün; aksi halde son basamakları sessizce bozarsınız.
traceparent Çözücü SSS
traceparent başlığı nedir?
traceparent trace-flags 00 ne anlama gelir?
trace-flags 01, 02 ve 03 arasındaki fark nedir?
Trace ID'm neden tamamı sıfır?
W3C trace ID'yi Datadog trace ID'ye nasıl dönüştürürüm?
traceparent zaman damgası içerir mi?
Buraya yapıştırdığım başlık bir yere yükleniyor mu?
Bu çözücü çevrimdışı çalışır mı?
İlgili Araçlar
Tüm araçları görüntüleyin →cURL Komut Oluşturucu ve Yapılandırıcı
Web & API
Tarayıcınızda curl komutları oluşturun — yöntem, başlık, kimlik doğrulama ve gövde ayarlayın, anında kopyalamaya hazır komut alın. Bearer, POST JSON, dosya yükleme için ön ayarlar. Ücretsiz, gizli, kayıt gerektirmez.
htpasswd Oluşturucu — bcrypt, Apache MD5 (apr1), Basic Auth
Web & API
bcrypt, Apache MD5 (apr1), SHA-1 ve daha fazlasıyla htpasswd girdisi oluşturun. Apache, nginx ve Docker için yapıştırmaya hazır yapılandırma alın. Tarayıcınızda %100 çalışır — yükleme yok.
Open Graph ve Meta Etiketi Oluşturucu
Web & API
Open Graph, Twitter Card ve SEO meta etiketlerini canlı Google, Facebook ve X önizlemesiyle çevrimiçi oluşturun. %100 ücretsiz, tarayıcıda çalışır, kayıt yok — kodu kopyalayıp yapıştırın.
nginx location test aracı — o blok neden kazanır
Web & API
Hangi nginx location bloğu kazanır — ve diğerleri neden kaybeder. =, ^~, ~ ve ~* için ücretsiz test aracı, tamamen tarayıcınızda.
AES Şifre Çözme Aracı — OpenSSL ve CryptoJS Uyumlu
Güvenlik Araçları
AES şifreli metnini online çözün — GCM/CBC/CTR, parola veya ham anahtar, OpenSSL ve CryptoJS "U2FsdGVkX1" biçimini otomatik algılar. %100 tarayıcıda, anahtarlar sayfadan asla çıkmaz.
AES Şifreleme Aracı — GCM, CBC ve CTR
Güvenlik Araçları
Ücretsiz online AES şifreleme — AES-128/192/256, GCM/CBC/CTR, parola (PBKDF2) veya ham anahtar. %100 tarayıcınızda çalışır; hiçbir şey yüklenmez.