API Trafik Log Kaydı Veri Yapısı
Veri Yapısı Alanları
| Alan Adı | Alanda Tutulan Veri/Açıklaması | Java Mapping Type | Mesajda yer alması için ayarlarda aktif edilmesi gereken alan |
|---|---|---|---|
| @timestamp | Time Stamp | Instant | Tanım Bilgisi |
| aci | Apinizer Correlation ID | String | Tanım Bilgisi |
| ei | Environment ID | String | Tanım Bilgisi |
| pi | Project ID | String | Tanım Bilgisi |
| appi | Application ID | String | API Proxy Bilgisi |
| appin | Application Name | String | API Proxy Bilgisi |
| api | API Proxy ID | String | API Proxy Bilgisi |
| apn | API Proxy Name | String | API Proxy Bilgisi |
| eat | API Type | String | API Proxy Bilgisi |
| aprp | API Proxy Relative Path | String | API Proxy Bilgisi |
| apmi | API Proxy Method ID | String | API Proxy Bilgisi |
| apmn | API Proxy Method Name | String | API Proxy Bilgisi |
| xff | X Forwarded For | String | İstek Bilgisi |
| hr1ra | Http Request Remote Address | String | İstek Bilgisi |
| hr1hm | Http Request Http Method | String | İstek Bilgisi |
| hr1ct | Http Request Content Type | String | İstek Bilgisi |
| hr1pi | Http Request Path Info | String | İstek Bilgisi |
| uok | Username or Key | String | İstek Bilgisi |
| ack | API Client Key | String | İstek Bilgisi |
| cot | Client Owner Type | String | İstek Bilgisi |
| coi | Client Owner Id | String | İstek Bilgisi |
| coo | Client Organization Id | String | İstek Bilgisi |
| hr1cp | Http Request Context Path | String | İstek Bilgisi |
| hr1qs | Http Request Query String | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1ru | Http Request Remote User | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1rsi | Http Request Requested Session Id | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1r1u | Http Request Request URI | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1ce | Http Request Character Encoding | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1cl | Http Request Content Length | Integer | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1p | Http Request Protocol | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1s | Http Request Scheme | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1sn | Http Request Server Name | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1sp | Http Request Server Port | Integer | İstek Bilgisi (Sadece "Trace" açıkken) |
| loc | Location | GeoLocation{Double lat, Double lon} | İstek Bilgisi |
| hr1rh | Http Request Remote Host | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1rp | Http Request Remote Port | Integer | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1ln | Http Request Local Name | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1la | Http Request Local Address | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| hr1lp | Http Request Local Port | String | İstek Bilgisi (Sadece "Trace" açıkken) |
| trqpt | TimeRequestPipelineTotal | Integer | Metrik Bilgisi |
| trspt | TimeResponsePipelineTotal | Integer | Metrik Bilgisi |
| rrc | RoutingRetryCount | Integer | Metrik Bilgisi |
| rfc | RoutingFailoverCount | Integer | Metrik Bilgisi |
| trt | TimeRoutingTotal | Integer | Metrik Bilgisi |
| tapt | TimeApiProxyTotal | Integer | Metrik Bilgisi |
| ch | CacheHit | Boolean | Metrik Bilgisi |
| sr1t | SizeRequestTotal | Integer | Metrik Bilgisi |
| sr2t | SizeResponseTotal | Integer | Metrik Bilgisi |
| sc | Status Code | Integer | Yanıt Bilgisi |
| rt | Result Type | Enum | Yanıt Bilgisi |
| et | Error Type | Enum | Yanıt Bilgisi |
| pet | Parent Error Type | Enum | Yanıt Bilgisi |
| afr | Authentication Failure Reason | Enum | Yanıt Bilgisi (yalnızca LDAP kimlik doğrulama politikası) |
| fcrp | From Client Read Only Parameter | Map<String,String> | Header from Client |
| fcrh | From Client Read Only Header | Map<String,String> | Param from Client |
| fcrb | From Client Read Only Body | String | Body from Client |
| tbap | To Backend API Parameter | Map<String,String> | Header to Backend API |
| tbah | To Backend API Header | Map<String,String> | Parameter to Backend API |
| tba | To Backend API Body | String | Body to Backend API |
| fbarh | From Backend API Read Only Header | Map<String,String> | Hedef API’den gelen header. Yalnızca hedef API’nin gönderdiği header’ları içerir; gateway’in eklediği header’lar (RateLimit-*, Retry-After, WWW-Authenticate gibi) yer almaz |
| fbarb | From Backend API Read Only Body | String | Body from Backend API |
| tch | To Client Header | Map<String,String> | İstemciye giden header. Gateway’in eklediği header’lar dahil istemciye yazılan yanıt header’larını içerir |
| tcb | To Client Body | String | Body to Client |
| pxt | Policy Execution Times | Nested<Object> | Politika Çalışma Süreleri |
uok alanı yalnızca çözülmüş bir kimlik taşır, istemcinin sunduğu kimlik bilgisini taşımaz. Bir kimlik doğrulama politikası isteği herhangi bir kimlik çözülemeden reddettiğinde alan, hız sınırlama politikasının çözdüğü kimliğe düşer; o da yoksa anonymous değerini alır. Bu nedenle reddedilen istekleri bir token veya anahtar değeri arayarak değil, aci alanı üzerinden ilişkilendirebilirsiniz.
API İsteği LDAP Kimlik Doğrulaması Tarafından Neden Reddedildi?
Bir LDAP kimlik doğrulama politikası isteği reddettiğinde, afr alanı aşağıdaki nedenlerden birini kaydeder:
- Giriş başarısız: kimlik bilgileri reddedildi, ya da hesap dizinde kilitli, kapalı veya süresi dolmuş.
- Kullanıcı bulunamadı: kullanıcı araması sonuç döndürmedi.
- Rol eksik: kullanıcı doğrulandı, ama politikanın gerektirdiği rolü taşımıyor.
- Dizine erişilemiyor: dizine hiç ulaşılamadı — ağ, TLS veya zaman aşımı sorunu.
afr değeri istemciye hiçbir zaman gönderilmez; yalnızca operatörler için trafik logunda bulunur. Dizine hiç ulaşılamadığında istek, olağan 401 kimlik doğrulama hatası yerine hizmetin kullanılamadığını belirten bir hata ile reddedilir, çünkü istek hiç değerlendirilemedi.
Alanların sırası değişebilir.
Seyrek Alanlar
Aşağıdaki alanlar yalnızca isteğe uygulandıklarında yazılır; örneğin yalnızca AI trafiğinde veya bir yönlendirme hatası kaydedildiğinde. Diğer kayıtlar bu alanları taşımaz ve yukarıdaki tablodaki alan grupları bunları kontrol etmez.
İstemci ve Abonelik
| Alan Adı | Alanda Tutulan Veri/Açıklama | Java Eşleme Tipi |
|---|---|---|
| usub | Kararlı kullanıcı kimliği: IdP token'ının sub değeri; client_credentials token'ında istemcinin kendisi | String |
| uids | IdP token'ının veren tarafı (iss); Apinizer'ın verdiği token için apinizer | String |
| ocid | Token'ın verildiği OAuth client'ı (azp, yoksa client_id) | String |
| subi | Abonelik ID'si | String |
| subp | Abonelik ürün ID'si | String |
| subpl | Abonelik plan ID'si | String |
| subo | Aboneliğin tüketici organizasyon ID'si | String |
Yönlendirme, Canary ve Mirror
| Alan Adı | Alanda Tutulan Veri/Açıklama | Java Eşleme Tipi |
|---|---|---|
| apr | API Proxy revizyonu | String |
| ra | Yönlendirme adresi | String |
| icr | İsteğin canary isteği olarak yönlendirilip yönlendirilmediği | Boolean |
| crs | Canary yönlendirme durumu | Enum |
| mc | Gönderilen mirror isteği sayısı | Integer |
| msc | Başarılı mirror isteği sayısı | Integer |
| mfc | Başarısız mirror isteği sayısı | Integer |
| mtd | Mirror isteklerinin toplam süresi | Long |
| ma | Mirror adresleri | List<String> |
Yönlendirme Teşhisi
| Alan Adı | Alanda Tutulan Veri/Açıklama | Java Eşleme Tipi |
|---|---|---|
| rfr | Yönlendirme hatası nedeni | String |
| rco | Hata nedeninin güvenilirliği (HIGH, MEDIUM, LOW) | String |
| rec | Exception sınıf adı | String |
| red | Temizlenmiş ve kısaltılmış exception mesajı | String |
| rdsel | Upstream seçim süresi (ns) | Long |
| rddns | DNS çözümleme süresi (ns) | Long |
| rdtcp | TCP bağlantı süresi (ns) | Long |
| rdtls | TLS handshake süresi (ns) | Long |
| rdttfb | İlk byte'a kadar geçen süre (ns); yanıt yoksa -1 | Long |
| rdbrd | Yanıt body okuma süresi (ns) | Long |
| rdpw | Havuzdan bağlantı beklerken geçen süre (ns) | Long |
| usc | Backend'in döndürdüğü ham durum kodu (istemciye dönenden ayrıdır) | Short |
| uip | Gerçekte bağlanılan upstream ip:port | String |
| crf | Havuzdaki bağlantının yeniden kullanılıp kullanılmadığı | Boolean |
| rtr | İsteğin yanıt veren bir backend'e ulaşıp ulaşmadığı | Boolean |
| gw | İsteği işleyen worker pod/host | String |
| pll | Havuzda kullanımda olan bağlantı sayısı | Short |
| plp | Havuzda bekleyen bağlantı isteği sayısı | Short |
| pla | Havuzda boştaki bağlantı sayısı | Short |
| plm | Havuzdaki en fazla bağlantı sayısı | Short |
| cct | Yapılandırılmış bağlantı zaman aşımı (ms) | Integer |
| crt | Yapılandırılmış okuma zaman aşımı (ms) | Integer |
| ccrt | Yapılandırılmış bağlantı isteği (havuz) zaman aşımı (ms) | Integer |
| cwms | Yanıtı istemciye yazma süresi (ms); streaming yanıtlarda -1 | Integer |
MCP
| Alan Adı | Alanda Tutulan Veri/Açıklama | Java Eşleme Tipi |
|---|---|---|
| mcptn | İstekle çağrılan MCP tool'unun adı | String |
| mcpjrid | JSON-RPC korelasyon ID'si | String |
| mcprc | Bir tools/call sonuç sınıfı: OK, TOOL_ERROR, JSONRPC_ERROR, TRANSPORT, POLICY_REJECT | String |
| mcpap | Onay için bekletilen bir tools/call çağrısının onay durumu | String |
| mcptno | İstek boyunca çağrılan giden MCP tool'larının virgülle ayrılmış benzersiz adları (256 karakterde kesilir, ,… ile işaretlenir) | String |
| mcptco | İstek boyunca yapılan toplam giden tool çağrısı sayısı | Integer |
A2A
| Alan Adı | Alanda Tutulan Veri/Açıklama | Java Eşleme Tipi |
|---|---|---|
| a2atk | A2A görev ID'si | String |
| a2act | A2A bağlam ID'si (çok turlu korelasyon) | String |
| a2ats | A2A görevinin son durumu, örneğin COMPLETED veya FAILED | String |
| a2asno | İstek boyunca çağrılan giden agent skill'lerinin virgülle ayrılmış benzersiz adları (256 karakterde kesilir) | String |
| a2aaco | İstek boyunca yapılan toplam giden agent çağrısı sayısı | Integer |
AI
| Alan Adı | Alanda Tutulan Veri/Açıklama | Java Eşleme Tipi |
|---|---|---|
| aip | LLM sağlayıcı tipi (örneğin openai, anthropic) | String |
| aipid | İsteği karşılayan LLM sağlayıcı kaydının ID'si | String |
| aim | Model adı | String |
| aidt | Dağıtım tipi: CLOUD, ON_PREM veya OTHER | String |
| aiti | Prompt (girdi) token sayısı | Long |
| aito | Completion (çıktı) token sayısı | Long |
| aitc | Önbellekten gelen prompt token sayısı | Long |
| aicm | Mikro USD cinsinden maliyet (maliyet × 1.000.000) | Long |
| aicim | Girdi token maliyeti (mikro USD) | Long |
| aicom | Çıktı token maliyeti (mikro USD) | Long |
| aiccm | Önbellek token maliyeti (mikro USD) | Long |
| aittft | İlk token'a kadar geçen süre (ms) | Long |
| aitpot | Çıktı token'ı başına ortalama süre (ms) | Long |
| ailat | Toplam gecikme (ms) | Long |
| aigtms | Guardrail aşamasının toplam süresi (ms) | Long |
| aiinf | Upstream LLM HTTP gecikmesi (ms) | Long |
| aiovh | Gateway ek yükü: toplam eksi guardrail eksi inference (ms) | Long |
| aisch | Semantic cache'in isabet verip vermediği | Boolean |
| aigh | Tetiklenen guard | String |
| aigc | Tetiklenen kuralın kategorisi | String |
| aigv | Dış guardrail'in kararı: SAFE, UNSAFE, TIMEOUT, ERROR veya SKIP | String |
| aipd | PII tespit edilip edilmediği | Boolean |
| aifr | Bitiş nedeni (stop, length, tool_use, content_filter) | String |
| aistr | Yanıtın streaming olup olmadığı | Boolean |
| aivk | Kimliği doğrulanmış çağıranın kimliği (principal; kayıt ID'si değildir) | String |
| aitid | AI trace kaydı referansı | String |
| aiff | Failover yapılan birincil sağlayıcı | String |
| aiqsc | Aşılan yumuşak limit yüzdesi (örneğin 80) | Integer |
| aiqao | ALERT_ONLY taşma eyleminin tetiklenip isteğin devam edip etmediği | Boolean |
| aircl | Route classifier'ın döndürdüğü etiket | String |
| aircs | Route classifier sonucu: MATCHED, NONE, UNKNOWN_LABEL, TIMEOUT, ERROR, TRUNCATED, BACKOFF, NO_PROVIDER veya NO_INPUT | String |
| aircms | Route classifier çağrı gecikmesi (ms) | Long |
| aircti | Route classifier prompt token sayısı | Long |
| aircto | Route classifier completion token sayısı | Long |
| airccm | Route classifier maliyeti (mikro USD; aicm içinde değildir) | Long |
| aivs | İsteğin vektör katmanı olmadan neden devam ettiği (RAG, semantic cache veya Topic Guard) | String |
Örnek JSON Verisi
Oluşan örnek JSON verisi:
{
"@timestamp" : "2023-10-16T14:48:07.662Z",
"aci" : "<correlation id>",
"ei" : "<environment id>",
"pi" : "<project id>",
"appi" : "<api proxy group id>",
"appin" : "<api proxy group name>",
"api" : "<api proxy id>",
"apn" : "<api proxy name>",
"eat" : "REST",
"aprp" : "<api proxy relative path>",
"apmi" : "<api proxy method id>",
"apmn" : "<api proxy method name>",
"xff" : "<x-forwarded-for>",
"hr1ra" : "<client address>",
"hr1hm" : "<HTTP Method>",
"hr1ct" : "<Content-Type>",
"hr1pi" : "<http request path info>",
"uok" : "<username or key>",
"hr1cp" : "<http request context path>",
"ra" : "<backend api address>",
"rrc" : 0,
"rfc" : 0,
"trqpt" : 20,
"trspt" : 30,
"trt" : 100,
"tapt" : 150,
"sr1t" : 100,
"sr2t" : 250,
"ch" : false,
"sc" : 200,
"et" : "APIPROXY",
"pet" : "API_PROXY",
"rt" : "SUCCESS",
"hr1qs" : "<Http Request Query String>",
"hr1ru" : "<Http Request Remote User>",
"hr1rsi" : "<Http Request Requested Session Id>",
"hr1r1u" : "<Http Request Request URI>",
"hr1ce" : "<Http Request Character Encoding>",
"hr1cl" : 100,
"hr1p" : "<Http Request Protocol>",
"hr1s" : "<Http Request Scheme>",
"hr1sn" : "<Http Request Server Name>",
"hr1sp" : 443,
"loc" : {
"lat" : 45.405,
"lon" : 11.1617
},
"hr1rh" : "<Http Request Remote Host>",
"hr1rp" : 8443,
"hr1ln" : "<Http Request Local Name>",
"hr1la" : "<Http Request Local Addr>",
"hr1lp" : 443,
"fcrp" : [ {
"k" : "key1",
"v" : "value1"
}, {
"k" : "key2",
"v" : "value2"
}, {
"k" : "key3",
"v" : "value3"
} ],
"fcrh" : [ {
"k" : "key1",
"v" : "value1"
}, {
"k" : "key2",
"v" : "value2"
}, {
"k" : "key3",
"v" : "value3"
} ],
"fcrb" : "<request body from client>",
"tbap" : [ {
"k" : "key1",
"v" : "value1"
}, {
"k" : "key2",
"v" : "value2"
}, {
"k" : "key3",
"v" : "value3"
} ],
"tbah" : [ {
"k" : "key1",
"v" : "value1"
}, {
"k" : "key2",
"v" : "value2"
}, {
"k" : "key3",
"v" : "value3"
} ],
"tba" : "<request body to backend api>",
"fbarh" : [ {
"k" : "key1",
"v" : "value1"
}, {
"k" : "key2",
"v" : "value2"
}, {
"k" : "key3",
"v" : "value3"
} ],
"fbarb" : "<body response from backend api>",
"tch" : [ {
"k" : "key1",
"v" : "value1"
}, {
"k" : "key2",
"v" : "value2"
}, {
"k" : "key3",
"v" : "value3"
} ],
"tcb" : "<body response to client>"
}
"rt" alanında yer alan değerlerin listesini Hata Mesajları sayfasında yer alan "Sonuç Tipi Değerleri" tablosunda inceleyebilirsiniz.
"pet" alanında yer alan değerlerin listesini Hata Mesajları sayfasında yer alan "Hata Üst Tipi Değerleri" tablosunda inceleyebilirsiniz.
"et" alanında yer alan değerlerin listesini Hata Mesajları sayfasında yer alan "Hata Tipi Değerleri" tablosunda inceleyebilirsiniz.
Politika Çalışma Süreleri (pxt)
pxt yalnızca log hedefinde Politika çalışma süreleri açıkken yazılır (varsayılan kapalı).
nested bir dizidir; her öğe o istekteki bir politika çalışmasını anlatır.
| Anahtar | Alan | Tip | Açıklama |
|---|---|---|---|
| o | Sıra | Integer | Çalışma sırası. Aynı zamanda hattı da taşır: 0-9999 istek, 10000-19999 yanıt, 20000+ hata. Hat içindeki sıra o % 10000. |
| t | Politika Tipi | String | Politika tipi; örneğin jwt-auth, content-filter, ai-semantic-cache. |
| d | Süre | Integer | Politikanın çalışma süresi (milisaniye). |
| f | Bayrak | String | Tek karakter, normal kayıtlarda bulunmaz. S akış sonu, K atlandı (koşul karşılanmadı), X atlanmış akış sonu, T liste kesildi. |
Politika adı tutulmaz: genellikle otomatik üretilmiş bir tanımlayıcıdır ve bir anlam taşımaz.
pxt içine hiçbir gövde, başlık veya parametre içeriği yazılmaz — bu ayrıntı düzeyi için Trace kullanın.
"pxt": [
{ "o": 1, "t": "jwt-auth", "d": 12 },
{ "o": 2, "t": "rate-limit", "d": 3 },
{ "o": 10001, "t": "content-filter", "d": 41 },
{ "o": 10002, "t": "ai-semantic-cache", "d": 8, "f": "S" }
]
İlişkisel (SQL/JDBC) bir log hedefinde aynı veri policy_exec_times kolonuna, sıra:tip:süre
üçlülerinden oluşan karakter sınırlı tek bir CSV olarak yazılır:
1:jwt-auth:12|2:rate-limit:3|10001:content-filter:41|10002:ai-semantic-cache:8[S]
Bir istek alışılmadık sayıda politika çalıştırdığında liste sessizce büyümek yerine kesilir ve
kesinti görünür şekilde işaretlenir — iki temsil bunu farklı biçimde yapar. Elasticsearch ve
MongoDB'de listenin sonuna t alanı +truncated, f alanı T, o alanı boş ve d alanı
süre değil, dışarıda kalan politika sayısını taşıyan bir kayıt eklenir. policy_exec_times
CSV'sinde ise string'in kendisi kesilir ve sonuna |+N eklenir (N = sığmayan üçlü sayısı);
…|+12 ile biten bir değer 12 politika kaydının kolona sığmadığı anlamına gelir.
policy_exec_times kolonu, önceki bir sürümden yükseltilen kurulumlarda bulunmaz; her ortam
veritabanına bir kez, 2026.09.1 — Log Tablosu ALTER Scriptleri
sayfasındaki ALTER betiğiyle eklenmelidir. Yeni kurulumlarda kolon
Apinizer Logları için Tablo Oluşturma Komutları
sayfasındaki betikle zaten oluşur. Hangi politikaların, hangi hedeflerde kaydedileceği
API Trafik Ayarları sayfasından yapılandırılır.