499 İstemci bağlantısı kesildi

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:

  1. Analiz > API İzleme > İnceleme sayfası.
  2. 4xx hatayı filtreleyin ve zaman aralığını seçin.
  3. Durum Kodunun grafiğini Zaman ile karşılaştırın.
  4. Aşağıda gösterildiği gibi 499 hata içeren bir hücre seçin:

  5. 499 hatasıyla ilgili bilgileri sağ bölmede aşağıda gösterilmiştir:

  6. 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.
    ziyaret edin.

    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 sorgulayarak timeRange ve status 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ş proxy

    For example :

    curl "https://apimonitoring.enterprise.apigee.com/logs/apiproxies?org=ORG&env=ENV&select=https://VIRTUAL_HOST/BASEBATH" -H "Authorization: Bearer $TOKEN"
    
  7. 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:

  1. 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.
  2. NGINX erişim günlüklerini kontrol edin:
    /opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
  3. 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 varsa 499
  4. 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
  5. 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

  1. 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.
  2. 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.
  3. 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

  1. Bu normal bir durumdur ve HTTP 499 hataları genellikle endişeye neden olmaz. bu tür durumlar yaşanır.
  2. 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.

    1. Bu durumda, Yaygın teşhis adımları.
    2. Proxy gecikmesinin nedenini daha ayrıntılı şekilde incelemek için gecikme analizi kontrol paneli sorunu düzeltin.
    3. 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.

  1. İ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.
  2. Hedef sunucu veya açıklama metni beklenenden uzun sürüyor. Bu durumda, ve zaman aşımı değerlerini uygun şekilde ayarlayın.
  3. 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:

  1. 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ı.
  2. Yanıt Süresi'nin tüm 499 hataları için tutarlı olup olmadığını belirleyin.
  3. 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 önce499s 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.
  4. 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:

  1. Etkinleştir izleme oturumu kontrol edin.
  2. 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.
  3. Her aşamada geçen süreyi kontrol edip zamanın çoğunun gerçekleştiği aşamayı not edin. emin olabilirsiniz.
  4. 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

  1. 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.
  2. İ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)