Aracılığıyla paylaş


Kaynak günlükleriyle ilgili sorunları giderme

Bu nasıl yapılır kılavuzu, Azure Web PubSub kaynak günlüklerine genel bir bakış ve belirli sorunları gidermek için günlükleri kullanmaya yönelik bazı ipuçları sağlar. Günlükler sorun belirleme, bağlantı izleme, ileti izleme, HTTP isteği izleme ve analiz için kullanılabilir.

Kaynak günlükleri nedir?

Üç tür kaynak günlüğü vardır: Bağlan ivity, Messaging ve HTTP istekleri.

  • Bağlan üretkenlik günlükleri, Azure Web PubSub hub bağlantıları için ayrıntılı bilgiler sağlar. Örneğin, temel bilgiler (kullanıcı kimliği, bağlantı kimliği vb.) ve olay bilgileri (bağlanma, bağlantıyı kesme vb.).
  • Mesajlaşma günlükleri, Azure Web PubSub hizmeti aracılığıyla alınan ve gönderilen Azure Web PubSub hub iletileri için izleme bilgileri sağlar. Örneğin, iletinin izleme kimliği ve ileti türü.
  • HTTP istekleri günlükleri , Azure Web PubSub hizmetine yönelik HTTP istekleri için izleme bilgileri sağlar. Örneğin, HTTP yöntemi ve durum kodu. HTTP isteği genellikle hizmete ulaştığında veya hizmetten ayrıldığında kaydedilir.

Canlı izleme aracını kullanarak kaynak günlüklerini yakalama

Azure Web PubSub hizmeti canlı izleme aracı, kaynak günlüklerini gerçek zamanlı olarak toplama özelliğine sahiptir ve bu da geliştirme ortamınızdaki sorunları gidermeye yardımcı olur. Canlı izleme aracı bağlantı günlüklerini, mesajlaşma günlüklerini ve HTTP istek günlüklerini yakalayabilir.

Dekont

Canlı izleme aracını kullanmak için aşağıdaki önemli noktalar geçerlidir:

  • Canlı izleme aracı tarafından yakalanan gerçek zamanlı kaynak günlükleri, iletiler (giden trafik) olarak faturalandırılır.
  • Canlı izleme aracı şu anda Microsoft Entra yetkilendirmesini desteklemiyor. Canlı izleme kullanmak için erişim anahtarlarını etkinleştirmeniz gerekir. Ayarlar altında Anahtarlar'ı seçin ve ardından Erişim Anahtarı'nı etkinleştirin.
  • Azure Web PubSub hizmeti Ücretsiz Katmanı örneğinin günlük sınırı 20.000 iletidir (giden trafik). Canlı izleme, beklenmedik şekilde günlük sınıra ulaşmanıza neden olabilir.

Canlı izleme aracını başlatma

Dekont

Erişim anahtarını etkinleştirdiğinizde, canlı izleme aracının kimliğini doğrulamak için erişim belirtecini kullanacaksınız. Aksi takdirde, canlı izleme aracının kimliğini doğrulamak için Microsoft Entra Id kullanırsınız. Erişim anahtarını etkinleştirip etkinleştirmeyebileceğinizi Azure portalındaki SignalR Hizmeti Anahtarlar sayfasından de kontrol edebilirsiniz.

Erişim anahtarı etkin adımları

  1. Azure portalına ve SignalR Hizmeti sayfanıza gidin.

  2. Soldaki menüden İzleme'nin altında Canlı izleme ayarları'nı seçin.

  3. Canlı İzlemeyi Etkinleştir'i seçin.

  4. Kaydet düğmesini seçin. Değişikliklerin geçerli olması biraz zaman alır.

  5. Güncelleştirme tamamlandığında Canlı İzleme Aracını Aç'ı seçin.

    Screenshot of launching the live trace tool.

Erişim anahtarı devre dışı bırakılacak adımlar

Kendinize canlı izleme aracı API'si izni atama

  1. Azure portalına ve SignalR Hizmeti sayfanıza gidin.
  2. Erişim denetimi (IAM) öğesini seçin.
  3. Yeni sayfada + Ekle'ye ve ardından Rol ataması'na tıklayın.
  4. Yeni sayfada İş işlevi rolleri sekmesine odaklanın, sahip rolü SignalR Hizmeti seçin ve İleri'ye tıklayın.
  5. Üyeler sayfasında +Üyeleri seç'e tıklayın.
  6. Yeni panelde üyeleri arayın ve seçin ve ardından Seç'e tıklayın.
  7. Gözden geçir ve ata'ya tıklayın ve tamamlanma bildirimini bekleyin.

Canlı izleme aracını ziyaret edin

  1. Azure portalına ve SignalR Hizmeti sayfanıza gidin.

  2. Soldaki menüden İzleme'nin altında Canlı izleme ayarları'nı seçin.

  3. Canlı İzlemeyi Etkinleştir'i seçin.

  4. Kaydet düğmesini seçin. Değişikliklerin geçerli olması biraz zaman alır.

  5. Güncelleştirme tamamlandığında Canlı İzleme Aracını Aç'ı seçin.

    Screenshot of launching the live trace tool.

Microsoft hesabınızla oturum açın

  1. Canlı izleme aracı bir Microsoft oturum açma penceresi açar. Pencere açılır değilse, tarayıcınızda açılır pencerelere izin verin ve işaretleyin.
  2. Durum çubuğunda Hazır'ın gösterilmesini bekleyin.

Kaynak günlüklerini yakalama

Canlı izleme aracı, sorun giderme için kaynak günlüklerini yakalamanıza yardımcı olacak işlevler sağlar.

  • Yakalama: Azure Web PubSub'dan gerçek zamanlı kaynak günlüklerini yakalamaya başlayın.
  • Temizle: Yakalanan gerçek zamanlı kaynak günlüklerini temizleyin.
  • Günlük filtresi: Canlı izleme aracı, yakalanan gerçek zamanlı kaynak günlüklerini belirli bir anahtar sözcükle filtrelemenizi sağlar. Ortak ayırıcılar (örneğin boşluk, virgül, noktalı virgül vb.) anahtar sözcüğün bir parçası olarak değerlendirilir.
  • Durum: Durum, canlı izleme aracının belirli bir örneğe bağlı olup olmadığını veya bağlantısının kesilip kesilmediğini gösterir.

Screenshot of capturing resource logs with live trace tool.

Canlı izleme aracı tarafından yakalanan gerçek zamanlı kaynak günlükleri, sorun gidermeye yönelik ayrıntılı bilgileri içerir.

Ad Açıklama
Süre Olay saatini günlüğe kaydetme
Günlük Düzeyi Günlük olay düzeyi , [İzleme | olabilir Hata Ayıklama | Bilgilendirme | Uyarı | Hata]
Olay Adı Olayın işlem adı
Mesaj Olay için ayrıntılı ileti
Özel durum Azure Web PubSub hizmetinin çalışma zamanı özel durumu
Hub Kullanıcı tanımlı hub adı
Bağlan ion Kimliği Bağlantının kimliği
Kullanıcı kimliği Kullanıcı kimliği
IP İstemci IP adresi
Rota Şablonu API'nin yol şablonu
Http Yöntemi Http yöntemi (POST/GET/PUT/DELETE)
URL Tekdüzen kaynak bulucu
İzleme Kimliği Çağırmanın benzersiz tanımlayıcısı
Durum Kodu Http yanıt kodu
Süre İsteği alma ve isteği işleme arasındaki süre
Üst Bilgiler İstemci ve sunucu tarafından http isteği veya yanıtıyla geçirilen ek bilgiler

Azure İzleyici ile kaynak günlüklerini yakalama

Kaynak günlüklerini etkinleştirme

Şu anda Azure Web PubSub, Azure Depolama ile tümleştirmeyi desteklemektedir.

  1. Azure portal'a gidin.

  2. Azure Web PubSub hizmet örneğinizin Tanılama ayarları sayfasında + Tanılama ayarı ekle'yi seçin. Screenshot of viewing diagnostic settings and create a new one

  3. Tanılama ayarı adı alanına ayar adını girin.

  4. Kategori ayrıntıları bölümünde ihtiyacınız olan günlük kategorilerini seçin.

  5. Hedef ayrıntıları bölümünde Depolama hesabına arşivle'yi işaretleyin.

    Screenshot of configuring diagnostic setting detail

  6. Tanılama ayarını kaydetmek için Kaydet'i seçin.

    Dekont

    Depolama hesabı Azure Web PubSub hizmetiyle aynı bölgede olmalıdır.

Azure Depolama Hesabında Arşivle

Günlükler, Tanılama ayarı bölmesinde yapılandırılan depolama hesabında depolanır. Adlı insights-logs-<CATEGORY_NAME> kapsayıcı, kaynak günlüklerini depolamak için otomatik olarak oluşturulur. Kapsayıcının içinde günlükler dosyasında resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.jsondepolanır. Yol ve Date Timeile resource ID birleştirilir. Günlük dosyaları ile hourbölünür. Dakika değeri her zaman m=00şeklindedir.

Tüm günlükler JavaScript Nesne Gösterimi (JSON) biçiminde depolanır. Her girdinin, aşağıdaki bölümlerde açıklanan biçimi kullanan dize alanları vardır.

Arşiv günlüğü JSON dizeleri aşağıdaki tablolarda listelenen öğeleri içerir:

Biçim

Ad Açıklama
time Olay saatini günlüğe kaydetme
düzey Günlük olay düzeyi
resourceId Azure SignalR Hizmeti kaynak kimliği
konum Azure SignalR Hizmeti konumunuz
category Günlük olayının kategorisi
operationName Olayın işlem adı
callerIpAddress Sunucunuzun veya istemcinizin IP adresi
özellikler Bu günlük olayıyla ilgili ayrıntılı özellikler. Daha fazla ayrıntı için aşağıdaki özellikler tablosuna bakın

Özellikler Tablosu

Ad Tanım
koleksiyonu Günlük olayının koleksiyonu. İzin verilen değerler şunlardır: Connection, Authorization ve Throttling
connectionId Bağlantının kimliği
userId Kullanıcının kimliği
ileti Günlük olayının ayrıntılı iletisi
Hub Kullanıcı tanımlı Hub Adı
routeTemplate API'nin yol şablonu
httpMethod Http yöntemi (POST/GET/PUT/DELETE)
url Tekdüzen kaynak bulucu
traceId Çağırmanın benzersiz tanımlayıcısı
statusCode Http yanıt kodu
süre İstek arasındaki süre alınır ve işlenir
üst bilgiler İstemci ve sunucu tarafından http isteği veya yanıtıyla geçirilen ek bilgiler

Aşağıdaki kod bir arşiv günlüğü JSON dizesi örneğidir:

{
  "properties": {
    "message": "Connection started",
    "collection": "Connection",
    "connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
    "userId": null
  },
  "operationName": "ConnectionStarted",
  "category": "ConnectivityLogs",
  "level": "Informational",
  "callerIpAddress": "167.220.255.79",
  "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
  "time": "2021-09-17T05:25:05Z",
  "location": "westus"
}

Azure Log Analytics'e arşivle

Log Analytics çalışma alanına günlük göndermek için:

  1. Tanılama ayarı sayfasındaki Hedef ayrıntıları'nın altında **Log Analytics çalışma alanına gönder'i seçin.
  2. Kullanmak istediğiniz Aboneliği seçin.
  3. Günlükler için hedef olarak kullanılacak Log Analytics çalışma alanını seçin.

Kaynak günlüklerini görüntülemek için şu adımları izleyin:

  1. Hedef Log Analytics'inizi seçin Logs .

    Log Analytics menu item

  2. yazın WebPubSubMessaging veya WebPubSubHttpRequestyazın WebPubSubConnectivityve günlüğü sorgulamak için zaman aralığını seçin. Gelişmiş sorgular için bkz . Azure İzleyici'de Log Analytics'i kullanmaya başlama.

    Query log in Log Analytics

SignalR hizmeti için örnek bir sorgu kullanmak için aşağıdaki adımları izleyin.

  1. Hedef Log Analytics'inizi seçin Logs .
  2. Sorgu gezginini açmak için seçin Queries .
  3. Kaynak türündeki örnek sorguları gruplandırmak için seçin Resource type .
  4. Betiği çalıştırmak için öğesini seçin Run . Sample query in Log Analytics

Arşiv günlüğü sütunları aşağıdaki tabloda listelenen öğeleri içerir.

Ad Tanım
TimeGenerated Olay saatini günlüğe kaydetme
Koleksiyon Günlük olayının koleksiyonu. İzin verilen değerler şunlardır: Connection, Authorization ve Throttling
OperationName Olayın işlem adı
Konum Azure SignalR Hizmeti konumunuz
Düzey Günlük olay düzeyi
CallerIpAddress Sunucunuzun/istemcinizin IP adresi
Mesaj Günlük olayının ayrıntılı iletisi
Kullanıcı Kimliği Kullanıcının kimliği
ConnectionId Bağlantının kimliği
ConnectionType Bağlantının türü. İzin verilen değerler şunlardır: Server | Client. Server: sunucu tarafından bağlantı; Client: istemci tarafından bağlantı
Transporttype Bağlantının aktarım türü. İzin verilen değerler şunlardır: Websockets | ServerSentEvents | LongPolling

Kaynak günlükleriyle ilgili sorunları giderme

Bağlantı sayısında artan veya azalan beklenmeyen değişiklikler bulursanız, sorunu gidermek için kaynak günlüklerinden yararlanabilirsiniz. Tipik sorunlar genellikle bağlantıların beklenmeyen miktar değişiklikleri, bağlantıların bağlantı sınırlarına ulaşması ve yetkilendirme hatasıyla ilgilidir.

Bağlantı sayısında beklenmeyen değişiklikler

Beklenmeyen bağlantı bırakma

Bağlantı kesilirse, kaynak günlükleri veya ile ConnectionAborted ConnectionEnded operationNamebağlantı kesme olayını kaydeder.

ile ConnectionEnded arasındaki ConnectionAborted fark, ConnectionEnded istemci veya sunucu tarafı tarafından tetiklenen beklenen bir bağlantı kesilmesidir. ConnectionAborted genellikle beklenmeyen bir bağlantı bırakma olayı olsa da ve bağlantı kesilmesinin nedeni içinde messagesağlanacaktır.

Durdurma nedenleri aşağıdaki tabloda listelenmiştir:

Neden Tanım
Bağlan sayısı sınıra ulaştı Bağlan sayısı geçerli fiyat katmanınızın sınırına ulaşır. Hizmet biriminin ölçeğini artırmayı göz önünde bulundurun
Hizmet yeniden yükleme, yeniden bağlanma Azure Web PubSub hizmeti yeniden yükleniyor. Kendi yeniden bağlantı mekanizmanızı uygulamanız veya Azure Web PubSub hizmetine el ile yeniden bağlanmanız gerekir
İç sunucu geçici hatası Azure Web PubSub hizmetinde geçici hata oluşuyor, otomatik kurtarılmalıdır

Bağlantılarda beklenmeyen artış

İstemci bağlantılarının sayısı beklenmedik şekilde arttığında, yapmanız gereken ilk şey gereksiz bağlantıları filtrelemektir. Test istemcisi bağlantınıza benzersiz bir test kullanıcı kimliği ekleyin. Ardından kaynak günlüklerini denetleyin; Birden fazla istemci bağlantısının aynı test kullanıcı kimliğine veya IP'ye sahip olduğunu görürseniz, istemci beklenenden daha fazla bağlantı oluşturuyor olabilir. Ek bağlantıların kaynağını bulmak için istemci kodunuzu denetleyin.

Yetkilendirme hatası

İstemci istekleri için 401 Yetkisiz döndürülürse kaynak günlüklerinizi denetleyin. bulursanız Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>, erişim belirtecindeki tüm hedef kitlelerin geçersiz olduğu anlamına gelir. Günlükte önerilen geçerli izleyicileri kullanmayı deneyin.

Azaltma

Azure Web PubSub hizmetine istemci bağlantıları kuramazsınız, kaynak günlüklerinizi denetleyin. Kaynak günlüğünde görüyorsanız Connection count reaches limit , Azure Web PubSub hizmetine çok fazla bağlantı kurduysanız ve bağlantı sayısı sınırına ulaştınız. Azure Web PubSub hizmet örneğinizin ölçeğini artırmayı göz önünde bulundurun. Kaynak günlüğünde görüyorsanız Message count reaches limit ve Ücretsiz katmanını kullanıyorsanız, ileti kotasını kullandığınız anlamına gelir. Daha fazla ileti göndermek istiyorsanız Azure Web PubSub hizmet örneğinizi Standart katman olarak değiştirmeyi göz önünde bulundurun. Daha fazla bilgi için bkz . Azure Web PubSub hizmeti Fiyatlandırması.