Ana içeriğe geç

API Trafik Log Kaydı Veri Yapısı

Veri Yapısı Alanları​

Alan AdıAlanda Tutulan Veri/AçıklamasıJava Mapping TypeMesajda yer alması için ayarlarda aktif edilmesi gereken alan
@timestampTime StampInstantTanım Bilgisi
aciApinizer Correlation IDStringTanım Bilgisi
eiEnvironment IDStringTanım Bilgisi
piProject IDStringTanım Bilgisi
appiApplication IDStringAPI Proxy Bilgisi
appinApplication NameStringAPI Proxy Bilgisi
apiAPI Proxy IDStringAPI Proxy Bilgisi
apnAPI Proxy NameStringAPI Proxy Bilgisi
eatAPI TypeStringAPI Proxy Bilgisi
aprpAPI Proxy Relative PathStringAPI Proxy Bilgisi
apmiAPI Proxy Method IDStringAPI Proxy Bilgisi
apmnAPI Proxy Method NameStringAPI Proxy Bilgisi
xffX Forwarded ForStringİstek Bilgisi
hr1raHttp Request Remote AddressStringİstek Bilgisi
hr1hmHttp Request Http MethodStringİstek Bilgisi
hr1ctHttp Request Content TypeStringİstek Bilgisi
hr1piHttp Request Path InfoStringİstek Bilgisi
uokUsername or KeyStringİstek Bilgisi
ackAPI Client KeyStringİstek Bilgisi
cotClient Owner TypeStringİstek Bilgisi
coiClient Owner IdStringİstek Bilgisi
cooClient Organization IdStringİstek Bilgisi
hr1cpHttp Request Context PathStringİstek Bilgisi
hr1qsHttp Request Query StringStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1ruHttp Request Remote UserStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1rsiHttp Request Requested Session IdStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1r1uHttp Request Request URIStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1ceHttp Request Character EncodingStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1clHttp Request Content LengthIntegerİstek Bilgisi (Sadece "Trace" açıkken)
hr1pHttp Request ProtocolStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1sHttp Request SchemeStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1snHttp Request Server NameStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1spHttp Request Server PortIntegerİstek Bilgisi (Sadece "Trace" açıkken)
locLocationGeoLocation{Double lat, Double lon}İstek Bilgisi
hr1rhHttp Request Remote HostStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1rpHttp Request Remote PortIntegerİstek Bilgisi (Sadece "Trace" açıkken)
hr1lnHttp Request Local NameStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1laHttp Request Local AddressStringİstek Bilgisi (Sadece "Trace" açıkken)
hr1lpHttp Request Local PortStringİstek Bilgisi (Sadece "Trace" açıkken)
trqptTimeRequestPipelineTotalIntegerMetrik Bilgisi
trsptTimeResponsePipelineTotalIntegerMetrik Bilgisi
rrcRoutingRetryCountIntegerMetrik Bilgisi
rfcRoutingFailoverCountIntegerMetrik Bilgisi
trtTimeRoutingTotalIntegerMetrik Bilgisi
taptTimeApiProxyTotalIntegerMetrik Bilgisi
chCacheHitBooleanMetrik Bilgisi
sr1tSizeRequestTotalIntegerMetrik Bilgisi
sr2tSizeResponseTotalIntegerMetrik Bilgisi
scStatus CodeIntegerYanıt Bilgisi
rtResult TypeEnumYanıt Bilgisi
etError TypeEnumYanıt Bilgisi
petParent Error TypeEnumYanıt Bilgisi
afrAuthentication Failure ReasonEnumYanıt Bilgisi (yalnızca LDAP kimlik doğrulama politikası)
fcrpFrom Client Read Only ParameterMap<String,String>Header from Client
fcrhFrom Client Read Only HeaderMap<String,String>Param from Client
fcrbFrom Client Read Only BodyStringBody from Client
tbapTo Backend API ParameterMap<String,String>Header to Backend API
tbahTo Backend API HeaderMap<String,String>Parameter to Backend API
tbaTo Backend API BodyStringBody to Backend API
fbarhFrom Backend API Read Only HeaderMap<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
fbarbFrom Backend API Read Only BodyStringBody from Backend API
tchTo Client HeaderMap<String,String>İstemciye giden header. Gateway’in eklediği header’lar dahil istemciye yazılan yanıt header’larını içerir
tcbTo Client BodyStringBody to Client
pxtPolicy Execution TimesNested<Object>Politika Çalışma Süreleri
not

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.

uyarı

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çıklamaJava Eşleme Tipi
usubKararlı kullanıcı kimliği: IdP token'ının sub değeri; client_credentials token'ında istemcinin kendisiString
uidsIdP token'ının veren tarafı (iss); Apinizer'ın verdiği token için apinizerString
ocidToken'ın verildiği OAuth client'ı (azp, yoksa client_id)String
subiAbonelik ID'siString
subpAbonelik ürün ID'siString
subplAbonelik plan ID'siString
suboAboneliğin tüketici organizasyon ID'siString

Yönlendirme, Canary ve Mirror​

Alan AdıAlanda Tutulan Veri/AçıklamaJava Eşleme Tipi
aprAPI Proxy revizyonuString
raYönlendirme adresiString
icrİsteğin canary isteği olarak yönlendirilip yönlendirilmediğiBoolean
crsCanary yönlendirme durumuEnum
mcGönderilen mirror isteği sayısıInteger
mscBaşarılı mirror isteği sayısıInteger
mfcBaşarısız mirror isteği sayısıInteger
mtdMirror isteklerinin toplam süresiLong
maMirror adresleriList<String>

Yönlendirme Teşhisi​

Alan AdıAlanda Tutulan Veri/AçıklamaJava Eşleme Tipi
rfrYönlendirme hatası nedeniString
rcoHata nedeninin güvenilirliği (HIGH, MEDIUM, LOW)String
recException sınıf adıString
redTemizlenmiş ve kısaltılmış exception mesajıString
rdselUpstream seçim süresi (ns)Long
rddnsDNS çözümleme süresi (ns)Long
rdtcpTCP bağlantı süresi (ns)Long
rdtlsTLS handshake süresi (ns)Long
rdttfbİlk byte'a kadar geçen süre (ns); yanıt yoksa -1Long
rdbrdYanıt body okuma süresi (ns)Long
rdpwHavuzdan bağlantı beklerken geçen süre (ns)Long
uscBackend'in döndürdüğü ham durum kodu (istemciye dönenden ayrıdır)Short
uipGerçekte bağlanılan upstream ip:portString
crfHavuzdaki 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/hostString
pllHavuzda kullanımda olan bağlantı sayısıShort
plpHavuzda bekleyen bağlantı isteği sayısıShort
plaHavuzda boştaki bağlantı sayısıShort
plmHavuzdaki en fazla bağlantı sayısıShort
cctYapılandırılmış bağlantı zaman aşımı (ms)Integer
crtYapılandırılmış okuma zaman aşımı (ms)Integer
ccrtYapılandırılmış bağlantı isteği (havuz) zaman aşımı (ms)Integer
cwmsYanıtı istemciye yazma süresi (ms); streaming yanıtlarda -1Integer

MCP​

Alan AdıAlanda Tutulan Veri/AçıklamaJava Eşleme Tipi
mcptnİstekle çağrılan MCP tool'unun adıString
mcpjridJSON-RPC korelasyon ID'siString
mcprcBir tools/call sonuç sınıfı: OK, TOOL_ERROR, JSONRPC_ERROR, TRANSPORT, POLICY_REJECTString
mcpapOnay için bekletilen bir tools/call çağrısının onay durumuString
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çıklamaJava Eşleme Tipi
a2atkA2A görev ID'siString
a2actA2A bağlam ID'si (çok turlu korelasyon)String
a2atsA2A görevinin son durumu, örneğin COMPLETED veya FAILEDString
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çıklamaJava Eşleme Tipi
aipLLM sağlayıcı tipi (örneğin openai, anthropic)String
aipidİsteği karşılayan LLM sağlayıcı kaydının ID'siString
aimModel adıString
aidtDağıtım tipi: CLOUD, ON_PREM veya OTHERString
aitiPrompt (girdi) token sayısıLong
aitoCompletion (çıktı) token sayısıLong
aitcÖnbellekten gelen prompt token sayısıLong
aicmMikro USD cinsinden maliyet (maliyet × 1.000.000)Long
aicimGirdi 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
ailatToplam gecikme (ms)Long
aigtmsGuardrail aşamasının toplam süresi (ms)Long
aiinfUpstream LLM HTTP gecikmesi (ms)Long
aiovhGateway ek yükü: toplam eksi guardrail eksi inference (ms)Long
aischSemantic cache'in isabet verip vermediğiBoolean
aighTetiklenen guardString
aigcTetiklenen kuralın kategorisiString
aigvDış guardrail'in kararı: SAFE, UNSAFE, TIMEOUT, ERROR veya SKIPString
aipdPII tespit edilip edilmediğiBoolean
aifrBitiş nedeni (stop, length, tool_use, content_filter)String
aistrYanıtın streaming olup olmadığıBoolean
aivkKimliği doğrulanmış çağıranın kimliği (principal; kayıt ID'si değildir)String
aitidAI trace kaydı referansıString
aiffFailover yapılan birincil sağlayıcıString
aiqscAşılan yumuşak limit yüzdesi (örneğin 80)Integer
aiqaoALERT_ONLY taşma eyleminin tetiklenip isteğin devam edip etmediğiBoolean
airclRoute classifier'ın döndürdüğü etiketString
aircsRoute classifier sonucu: MATCHED, NONE, UNKNOWN_LABEL, TIMEOUT, ERROR, TRUNCATED, BACKOFF, NO_PROVIDER veya NO_INPUTString
aircmsRoute classifier çağrı gecikmesi (ms)Long
airctiRoute classifier prompt token sayısıLong
airctoRoute classifier completion token sayısıLong
airccmRoute 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>"
}
bilgi

"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.

AnahtarAlanTipAçıklama
oSıraIntegerÇ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.
tPolitika TipiStringPolitika tipi; örneğin jwt-auth, content-filter, ai-semantic-cache.
dSüreIntegerPolitikanın çalışma süresi (milisaniye).
fBayrakStringTek 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.