Sıkça sorulan sorular

apiheron’u uygulamasına eklemeden önce geliştiricilerin sorduklarına kısa yanıtlar: sayfada ne yapar, sayfadan ne çıkar, bir bulguya ne kadar güvenilir.

01Ürün

apiheron nedir?

apiheron, frontend’inizin aldığı API response’larıyla ne yaptığını gösterir: kod hangi alanları okuyor, istekler ne kadar sürüyor, response’lar ne kadar büyük, hangi çağrılar tekrarlanıyor. Uygulamanızdaki SDK bunu gerçek kullanımdan kaydeder; apiheron kaydı bulgulara çevirir ve her bulguyu arkasındaki isteklerle ve isteği atan kod konumuyla birlikte gösterir.

Bir monitoring ya da APM aracı mı?

Hayır. apiheron sunucu metriği, trace ya da log toplamaz. Tarayıcıda çalışır ve frontend’in her response’tan neyi okuduğunu gösterir; sunucu tarafındaki bir araç bunu göremez. İsrafı bulmaya yarayan bir geliştirme aracıdır, alarm sistemi değildir; production’daki bir olay sırasında ona güvenmeyin.

Hangi teknolojilerle çalışır?

JSON’u fetch ya da XMLHttpRequest ile okuyan her frontend ile çalışır; axios, jQuery ve Angular ek bağlama gerektirmez, TanStack Query entegrasyonu da vardır. Kurulumda Next.js, Vite ve düz HTML için hazır snippet’ler bulunur. Yalnızca tarayıcıda yapılan istekler kaydedilir: SDK sunucuda hiçbir şey yapmaz, JSON olmayan response’lar da atlanır.

02Uygulamanız

Kodumu değiştirmem gerekir mi, sonra nasıl kaldırırım?

Uygulamanızın veri çekme biçimini değiştirmezsiniz. Sayfanın head bölümüne tek bir script etiketi eklersiniz ya da npm paketindeki init() fonksiyonunu çağırırsınız; fetch ve XMLHttpRequest ile yapılan istekler o andan itibaren kaydedilir. axios ve TanStack Query bağlantıları isteğe bağlıdır, her biri tek satırdır. Kodunuzun aldığı JSON, okumalar gözlenebilsin diye sarılır; structuredClone, postMessage ya da IndexedDB’ye vermeden önce unwrap() fonksiyonundan geçirin. apiheron’u kaldırmak için o etiketi ya da çağrıyı silin: onlar olmadan hiçbir şey patch’lenmez.

Sayfamı yavaşlatır mı?

Sayfanızda çalışan şudur: SDK fetch, XMLHttpRequest ve JSON.parse’ı sarar, şeklini kaydetmek için her JSON gövdesini ikinci kez okur ve hangi alanların okunduğunu not edebilmek için kodunuza sarılmış bir nesne verir. Topladıklarını tek batch olarak, varsayılan ayarda 2 saniyede bir gönderir. Bu kaydın bulgulara çevrilmesi tarayıcıda değil, apiheron’un sunucularında yapılır. Script gzip ile yaklaşık 14 KB’tır. Yayımladığımız bir ek yük rakamı yok: kendi sayfalarınızı SDK açık ve kapalıyken karşılaştırın. sampleRate, örnekleme girmeyen sayfa açılışlarında bunların hiçbirini çalıştırmaz; ignore ise seçtiğiniz URL’leri yalnızca kayıttan çıkarır.

apiheron’a ulaşılamazsa ya da SDK hata alırsa uygulamama ne olur?

İstekleriniz apiheron üzerinden geçmez: SDK tarayıcının kendi fetch ve XMLHttpRequest’ini çağırır, raporunu ayrıca gönderir. Bu çağrıların etrafındaki SDK kodu korumalıdır; SDK’nın kendi kodu orada hata alırsa uygulamanız yine tarayıcının özgün response’unu alır. apiheron’a ulaşılamazsa gönderilemeyen batch atılır, gönderim bir süre durur ve konsola tek bir uyarı yazılır; bekleyen event’ler sınırlı bir buffer’da tutulur, buffer dolunca en eskiler atılır.

Production’da çalıştırabilir miyim?

Evet. Next.js ve Vite snippet’leri script’i yalnızca development’ta yükler; orada production bilinçli bir adımdır. Düz HTML etiketi ise sayfa nerede yayınlanıyorsa orada yüklenir. Production’da sampleRate sayfa açılışlarının bir bölümünü kaydeder, böylece yoğun bir uygulama kotasının içinde kalır; yüklediğiniz source map’ler de minify edilmiş call site’ları özgün dosya ve satıra çevirir (Team planı ve üzeri). Kaydedilen her sayfa açılışı eksiksiz kalır, bulgular geçerliliğini korur; sayılar yalnızca örneklemi gösterir.

03Verileriniz

Sayfadan ne çıkar? Response değerleri çıkar mı?

Response değerleri sayfadan çıkmaz. SDK her JSON response’un şeklini ve kullanımını gönderir: metot, URL, durum kodu, süre ve boyut, alanların yolları (örneğin items[].price), kodunuzun bunlardan hangilerini okuduğu, sayfa yolu, isteği atan kod konumu, bir oturum kimliği ve SDK sürümü; tanımladıysanız senaryo adı da gider. Nesne anahtarları alan adı sayılır; id ya da e-posta adresiyle anahtarlanmış bir response bu anahtarları gönderir. İstek URL’inde query değerleri ve id’ye benzeyen path segmentleri (sayılar, UUID’ler, uzun token’lar, e-posta adresleri), eşit değerleri karşılaştırılabilir bırakan kısa bir hash ile değiştirilir; bu maskelemedir, anonimleştirme değildir. Diğer path segmentleri ve kendi sayfanızın yolu olduğu gibi gönderilir. İstek gövdeleri gönderilmez, yalnızca her birinin hash’i gider; GraphQL’de operation adı da gönderilir.

captureRequests neyi değiştirir?

Varsayılan olarak kapalıdır. Açarsanız SDK her isteğin URL’ini ve gövdesini gönderildiği haliyle de yollar; böylece istek apiheron’dan çalışan bir cURL komutu olarak kopyalanabilir. Query string’lerde ve JSON ile form-encoded gövdelerde parola, token ya da anahtar gibi adlandırılmış alanlar *** ile değiştirilir; diğer metin gövdeleri ve URL path’i olduğu gibi gönderilir. FormData, dosyalar ve 8 KB’tan büyük gövdeler atlanır, header’lar yine okunmaz. Bu URL ve gövdelerdeki kişisel veriler gönderildiği haliyle saklanır; yalnızca bunun kabul edilebilir olduğu yerde açın.

SDK header’ları, çerezleri ya da token’ları okur mu?

SDK istek header’larını hiç okumaz; bu yüzden bir Authorization header’ını ya da çerezi görmez. Bir response’un header’larından yalnızca içerik tipine, kodlamasına ve uzunluğuna bakar: JSON’u tanımak ve boyutunu ölçmek için. Query değeri olarak geçen bir token, diğer query değerleri gibi maskelenir. Bir response’ta password ya da api_key gibi kimlik bilgisine benzeyen adda bir alan varsa apiheron bu alan adını bulgu olarak bildirir (giriş route’ları hariç); değeri hiç gönderilmemiştir.

Verilerim ne kadar saklanır, dışa aktarabilir ya da silebilir miyim?

Kaydedilen response’lar, projede ayarlı saklama süresini geçince otomatik silinir; bu süreyi plan sınırlar: Free’de 7, Team’de 30, Business’ta 90 gün. Bulgular proje var oldukça kalır. Organizasyonunuzun projelerini, bulgularını, kararlarını, üyelerini, kullanımını ve denetim kaydını JSON olarak, istek ve endpoint listelerini CSV olarak indirebilirsiniz. Organizasyonu kendiniz silebilirsiniz; bir hesap, aktif aboneliği kalmadığında ve bir organizasyonun tek Owner’ı olmadığında silinebilir. Organizasyonu silmek verilerini çalışan servisten hemen kaldırır ve geri alınamaz. Veritabanı Avrupa Birliği’nde barındırılır.

apiheron’u kendi sunucularımda çalıştırabilir miyim?

Evet, Enterprise planı kapsamında. Bu plan sizinle birlikte boyutlandırılır: response hacmi, saklama süresi, yıllık sözleşme ve gerekiyorsa kendi altyapınızda kurulum. Başlamak için fiyatlar bölümündeki İletişime geç bağlantısını kullanın.

AI danışmanı neyi, ne zaman alır?

Siz açmadıkça hiçbir şeyi: danışman varsayılan olarak kapalıdır ve model sağlayıcısındaki kendi key’inizle çalışır. Arka planda hiç çalışmaz; Developer ya da daha üst roldeki bir üye bir endpoint için öneri istediğinde çağrılır. Bu istek şekil ve ölçüm taşır: endpoint’in route’u, bulguları, okunan ve okunmayan alanların yolları, dizi işlemleri, sayılar, süreler, boyutlar, sayfa yolları ve call site’lar. Response değerleri içinde yoktur, çünkü apiheron onları almaz.

04Bulgular

“Okunmayan alan” bulgusu yanlış olabilir mi?

Eksik olabilir. “Okunmadı”, yalnızca apiheron’un gözlemlediği oturumları kapsar: başka bir sayfada, sekmede ya da işlemde okunan bir alan, biri o akışı kullanana kadar okunmamış görünür. Bu yüzden böyle her bulgu kaç oturuma ve kaç isteğe dayandığını belirtir; SDK’nın tam izleyemediği response’lar da alan iddialarının dışında tutulur. Bir geliştirici bulguyu susturabilir ya da notuyla yanlış pozitif olarak işaretleyebilir; okunmayan bir alanı silme izni olarak değil, kodda kontrol edilecek bir ipucu olarak görün.

Bir bulgu neye denir?

Bir bulgu, bir endpoint ile bir sorun türüdür. Aynı durum 20 kez yaşansa da tek bulgudur; tekrar sayısı ayrıca gösterilir. React StrictMode’un effect’leri iki kez çalıştırması gibi yalnızca development’ta görülen bulgular “yalnızca dev” olarak etiketlenir ve sayıya girmez.

05Planlar

Free plan neleri içerir?

Ayda 50.000 kaydedilen response, 7 gün veri saklama, tüm bulgu türleri, 1 üye ve 2 proje (bir uygulamanın development ve production ortamı). Kredi kartı gerekmez. Team ve Business kotayı ve saklama süresini yükseltir, üye ve proje sınırını kaldırır.

Kotam dolunca ne olur?

Kayıt, bir sonraki takvim ayına ya da siz daha üst bir plana geçene kadar durur. Ek ücret çıkmaz, saklanmış veriler etkilenmez. Organizasyonun Owner’larına kota dolmaya yaklaşınca bir e-posta, kayıt durunca bir e-posta daha gider.

Deneme var mı, kredi kartı gerekir mi?

Yeni organizasyon kart istemeden 14 günlük Team denemesiyle başlar. Deneme bitince yükseltene kadar Free planda kalırsınız; ücretli bir plan seçmedikçe hiçbir ücret alınmaz. Ücretli planlarda taahhüt yoktur: iptali ya da plan değişikliğini kendiniz yaparsınız; ödeme, fatura ve vergiler Polar üzerinden yönetilir.

En hızlı yanıt kendi uygulamanızda.

Bir proje oluşturun, script’i ekleyin ve bir iki sayfa gezin.

Ücretsiz başlaKredi kartı gerekmez. Ayda 50.000 response ücretsiz.