Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
İstemci uygulaması API istekleri için zaman aşımı hatası alıyor veya istek sonlandırılıyor API isteği Apigee'de yürütülürken aniden.
API Monitoring'de bu tür API istekleri için 499
durum kodunu göreceksiniz ve
NGINX Erişim günlükleri. Zaman zaman API Analytics'te farklı durum kodları görebilirsiniz. Bunun nedeni,
İletiyi İşleyen tarafından döndürülen durum kodunu gösterir.
Hata mesajı
İstemci uygulamalarında aşağıdakilere benzer hatalar gösterilebilir:
curl: (28) Operation timed out after 6001 milliseconds with 0 out of -1 bytes received.
İstemci zaman aşımlarının nedeni nedir?
Edge platformunda API isteğinin tipik yolu İstemci > Yönlendirici > Mesaj İşleyici > Arka Uç Sunucusu aşağıdaki şekilde gösterildiği gibidir:
Apigee Edge platformundaki Yönlendiriciler ve Mesaj İşlemcileri uygun varsayılan zaman aşımı değerlerini belirleyerek API isteklerinin tamamlanmasının çok uzun sürmemesini sağlayın.
İstemcide Zaman Aşımı
İstemci uygulamaları, ihtiyaçlarınıza uygun bir zaman aşımı değeriyle yapılandırılabilir.
Web tarayıcıları ve mobil uygulamalar gibi istemcilerde, işletim sistemi tarafından tanımlanan zaman aşımları vardır.
Yönlendiricide zaman aşımı
Yönlendiricilerde yapılandırılan varsayılan zaman aşımı süresi 57 saniyedir. Bu, bir API proxy'si, API isteğinin Edge'de alınmasından yanıt alınana kadar yürütülebilir arka uç yanıtı ve yürütülen tüm politikalar dahil olmak üzere geri gönderilir. Varsayılan zaman aşımı, Yönlendiricilerde ve sanal ana makinelerde Yönlendiricilerde G/Ç zaman aşımını yapılandırma.
İleti İşlemcilerinde Zaman Aşımı
İleti İşlemcilerinde varsayılan zaman aşımı süresi 55 saniyedir. Bu, maksimum tutardır. arka uç sunucusunun isteği işlemesi ve İletiye yanıt vermesi için geçmesi gereken süre İşlemci. Varsayılan zaman aşımı, Mesaj İşleyicileri veya API'de geçersiz kılınabilir Proxy'ler şu şekildedir: Mesaj İşlemcilerinde G/Ç zaman aşımını yapılandırma.
İstemci, API proxy'si zaman aşımına uğramadan önce Yönlendiriciyle olan bağlantıyı kapatırsa
ilgili API isteği için zaman aşımı hatası gösterilir. Bu tür istekler için 499 Client
Closed Connection
durum kodu Yönlendirici'ye kaydedilir ve bu durum API'de görülebilir.
İzleme ve NGINX Erişim günlükleri.
Olası Nedenler
Edge'de 499 Client Closed Connection
hatasının tipik nedenleri şunlardır:
Neden | Açıklama | Şunun için geçerli sorun giderme talimatları: |
---|---|---|
İstemci aniden bağlantıyı kapattı | Bu durum, son kullanıcının isteği gönderin. | Herkese açık ve Private Cloud kullanıcıları |
İstemci uygulaması zaman aşımı | Bu durum, API Proxy'sinin işlem yapma süresi gelmeden önce istemci uygulaması zaman aşımına uğradığında ortaya çıkar. işleme koymalı ve yanıtı göndermelidir. Bu durum genellikle istemci zaman aşımı süresi daha kısa olduğunda ortaya çıkar daha iyi performans göstermesi gerekir. | Herkese açık ve Private Cloud kullanıcıları |
Sık kullanılan teşhis adımları
Bu hatayı teşhis etmek için aşağıdaki araçlardan/tekniklerden birini kullanın:
- API Monitoring
- NGINX erişim günlükleri
API Monitoring
API Monitoring'i kullanarak hatayı teşhis etmek için:
- Analiz > API İzleme > İnceleme sayfası.
4xx
hatayı filtreleyin ve zaman aralığını seçin.- Durum Kodunun grafiğini Zaman ile karşılaştırın.
- Aşağıda gösterildiği gibi
499
hata içeren bir hücre seçin: 499
hatasıyla ilgili bilgileri sağ bölmede aşağıda gösterilmiştir:- Sağdaki bölmede View logs'u (Günlükleri görüntüle) tıklayın.
Trafik Günlükleri penceresinde,
499
ile ilgili aşağıdaki ayrıntılara dikkat edin hata:- İstek:Bu, çağrı yapmak için kullanılan istek yöntemini ve URI'yı sağlar
- Yanıt Süresi:İstek için geçen toplam süreyi sağlar.
Tüm günlüklere API Monitoring'i kullanarak da ulaşabilirsiniz. Günlükleri alma API'si. Örneğin, Örneğin,
org
,env
için günlükleri sorgulayaraktimeRange
vestatus
için tüm Google ürünlerini indirebilirsiniz istemcinin zaman aşımına uğradığı işlemlerin günlüklerini gösterir.API Monitoring, proxy'yi HTTP
499
için-
olarak ayarladığından varsa API'yi kullanarak (Logs API) kullanarak sanal ana makine ve yol için ilişkilendirilmiş proxyFor example :
curl "https://apimonitoring.enterprise.apigee.com/logs/apiproxies?org=ORG&env=ENV&select=https://VIRTUAL_HOST/BASEBATH" -H "Authorization: Bearer $TOKEN"
- Diğer
499
hataları için Yanıt Süresi'ni inceleyin ve Yanıt Süresi tüm reklam gruplarında tutarlı (örneğin, 30 saniye)499
hata.
NGINX erişim günlükleri
NGINX erişim günlüklerini kullanarak hatayı teşhis etmek için:
- Private Cloud kullanıcısıysanız aşağıdakileri belirlemek için NGINX erişim günlüklerini kullanabilirsiniz:
HTTP
499
hatalarıyla ilgili önemli bilgiler. - NGINX erişim günlüklerini kontrol edin:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- Belirli bir sürede herhangi bir
499
hatası olup olmadığını görmek için arama yapın (sorun geçmişte oluşmuşsa) veya hâlâ başarısız olan bir istek varsa499
499
hatalarından bazıları için aşağıdaki bilgilere dikkat edin:- Toplam Yanıt Süresi
- İstek URI'si
- Kullanıcı aracısı
NGINX erişim günlüğünden örnek 499 hatası:
2019-08-23T06:50:07+00:00 rrt-03f69eb1091c4a886-c-sy 50.112.119.65:47756 10.10.53.154:8443 10.001 - - 499 - 422 0 GET /v1/products HTTP/1.1 - okhttp/3.9.1 api.acme.org rrt-03f69eb1091c4a886-c-sy-13001-6496714-1 50.112.119.65 - - - - - - - -1 - - dc-1 router-pod-1 rt-214-190301-0020137-latest-7d 36 TLSv1.2 gateway-1 dc-1 acme prod https -
Bu örnek için aşağıdaki bilgileri görüyoruz:
- Toplam yanıt süresi:
10.001
saniye. Bu durum, istemci 10.001 saniye sonra zaman aşımına uğradı - İstek:
GET /v1/products
- Barındırıcı:
api.acme.org
- Kullanıcı Aracısı:
okhttp/3.9.1
- Toplam Yanıt Süresi ile Kullanıcı Aracısı'nın tutarlı olup olmadığını kontrol edin
499
hatanın tamamında.
Neden: İstemci aniden bağlantıyı kapattı
Teşhis
- Bir tarayıcıda veya mobil uygulamada çalışan tek sayfalık uygulamadan API çağrıldığında, Kullanıcı aniden tarayıcıyı kapatırsa veya tarayıcı gezinmeye başlarsa tarayıcı isteği iptal eder. aynı sekmedeki başka bir web sayfasına yönlendirir veya tıklayarak ya da dokunarak sayfanın yüklenmesini durdurur. yüklemeyi durdur.
- Böyle bir durumda, HTTP
499
durumundaki işlemler genellikle değişiklik gösterir. istek işleme süresinde (Yanıt Süresi) belirlenebilir. -
Yanıt Süresi'ni karşılaştırarak ve sorunun
API İzleme veya NGINX Erişimi kullanan
499
hatalarının her biri için farklıdır Yaygın teşhis adımları bölümünde açıklandığı şekilde günlüklere eklenir.
Çözünürlük
- Bu normal bir durumdur ve HTTP
499
hataları genellikle endişeye neden olmaz. bu tür durumlar yaşanır. -
Aynı URL yolu için sık sık oluyorsa bunun nedeni, ilgili proxy çok yavaş olduğunu ve kullanıcıların beklemek istemediğini tespit ettik.
Hangi proxy'nin etkilenebileceğini belirledikten sonra Gecikme proxy gecikmesinin nedenini daha ayrıntılı incelemek için lütfen analiz kontrol paneline bakın.
- Bu durumda, Yaygın teşhis adımları.
- Proxy gecikmesinin nedenini daha ayrıntılı şekilde incelemek için gecikme analizi kontrol paneli sorunu düzeltin.
- Gecikmenin belirli bir Proxy için beklendiği gibiyse, Proxy'nin yanıt vermesi biraz zaman alabilir.
Neden: İstemci uygulaması zaman aşımı
Bu, çeşitli senaryolarda gerçekleşebilir.
-
İsteğin tamamlanmasının belirli bir süre (ör. 10 saniye) sürmesi beklenir
koruyabilir. Ancak, istemci uygulamasında yanlış bir
istemci uygulamasının zaman aşımına uğramasına neden olan, zaman aşımı değerini (örneğin, 5 saniye)
API isteği tamamlandığı için
499
. Bu örnek için, istemci zaman aşımını uygun bir değere ayarlayabilirsiniz. - Hedef sunucu veya açıklama metni beklenenden uzun sürüyor. Bu durumda, ve zaman aşımı değerlerini uygun şekilde ayarlayın.
- Müşteri artık bu yanıta ihtiyaç duymadığından iptal etti. Bu durum yüksek otomatik tamamlama veya kısa yoklama gibi sıklık API'leri
Teşhis
API Monitoring veya NGINX erişim günlükleri
API Monitoring veya NGINX erişim günlüklerini kullanarak hatayı teşhis edin:
- HTTP
499
işlemleri için API Monitoring günlüklerini veya NGINX erişim günlüklerini şu sayfada açıklandığı şekilde kontrol edin: Yaygın teşhis adımları. - Yanıt Süresi'nin tüm
499
hataları için tutarlı olup olmadığını belirleyin. - Yanıtınız evet ise belirli bir istemci uygulaması, sabit bir zaman aşımı süresi yapılandırmış olabilir.
çok önemlidir. Bir API proxy'si veya hedef sunucu yavaş yanıt veriyorsa istemci zaman aşımına uğruyor
proxy zaman aşımına uğramadan önce
499s
olmasına dikkat edin. Bu durumda NGINX erişim günlüklerinden User Agent'ı (Kullanıcı Aracısı) istemci uygulamasını belirlemenize yardımcı olabilir. - Ayrıca Apigee'nin önünde Akamai gibi bir yük dengeleyici, F5, AWS ELB vb. Apigee özel bir yük dengeleyicinin arkasında çalışıyorsa istek yük dengeleyici zaman aşımı, Apigee API zaman aşımından fazla olacak şekilde yapılandırılmalıdır. Ölçüt Varsayılan olarak, Apigee Yönlendirici 57 saniye sonra zaman aşımına uğradığından istek yapılandırmaya uygundur yük dengeleyicide 60 saniyelik zaman aşımına uğrar.
Trace
Trace'i kullanarak hatayı teşhis edin
Sorun hâlâ etkinse (499
hata hâlâ oluşuyorsa) şu işlemi gerçekleştirin:
şu adımları uygulayın:
- Etkinleştir izleme oturumu kontrol edin.
- Hatanın oluşmasını bekleyin veya API çağrınız varsa bazı API çağrıları yapın ve hatayı yeniden oluşturun.
- Her aşamada geçen süreyi kontrol edip zamanın çoğunun gerçekleştiği aşamayı not edin. emin olabilirsiniz.
- Bir
arka uç sunucusunun yavaş olduğunu veya uzun sürdüğünü gösterirse
aşağıdaki adımları uygulayın:
- İstek hedef sunucuya gönderildi
- Hizmet Çağrısı politikası
Aşağıda, İstek yapıldıktan sonra Ağ Geçidi Zaman Aşımı'nı gösteren örnek bir kullanıcı arayüzü izin verilmiştir. hedef sunucuya gönderilir:
Çözünürlük
- Bkz. Hangi zaman aşımı değerlerinin ayarlanması gerektiğini anlamak için G/Ç zaman aşımını yapılandırmaya yönelik en iyi uygulamalar ve Apigee Edge üzerinden API isteği akışında yer alan farklı bileşenler hakkında daha fazla bilgi edineceğiz.
- İstemci uygulamasında ele alacağız.
Sorun devam ederse Teşhis bilgileri toplanması gerekiyor başlıklı makaleyi inceleyin .
Teşhis bilgileri toplanmalıdır
Sorun devam ederse aşağıdaki teşhis bilgilerini toplayın ve ardından Apigee Edge Destek Ekibi ile iletişime geçin.
Herkese Açık Bulut kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Kuruluş adı
- Ortam adı
- API Proxy adı
- Zaman aşımı hatasını yeniden oluşturmak için kullanılan
curl
komutunu tamamlayın - İstemci zaman aşımı hataları gördüğünüz API istekleri için izleme dosyası
Private Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
- Başarısız istekler için tam hata mesajı gözlemlendi
- Ortam adı
- API Proxy paketi
- İstemci zaman aşımı hataları gördüğünüz API istekleri için izleme dosyası
- NGINX erişim günlükleri (
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
) - Mesaj İşleyici sistem günlükleri (
/opt/apigee/var/log/edge-message-processor/logs/system.log
)