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 sorunları gidermek için günlükleri kullanmaya yönelik ipuçları sağlar. Günlükleri sorun belirleme, bağlantı izleme, ileti izleme, HTTP isteği izleme ve analiz için kullanabilirsiniz.

Kaynak günlükleri nedir?

Üç tür kaynak günlüğü vardır:

  • Bağlantı günlükleri, Azure Web PubSub hub bağlantıları için ayrıntılı bilgiler sağlar. Bunlar kullanıcı kimliği ve bağlantı kimliği gibi temel bilgileri veya bağlanma ve bağlantıyı kesme gibi olay bilgilerini içerebilir.
  • Mesajlaşma günlükleri, Azure Web PubSub hizmeti aracılığıyla gönderilen veya alınan hub iletileri için izleme kimliği veya ileti türü gibi izleme bilgileri sağlar.
  • HTTP istek günlükleri, Azure Web PubSub hizmetine http istekleri için HTTP yöntemi veya durum kodu gibi izleme bilgileri sağlar. Genellikle, bir HTTP isteği hizmete ulaştığında veya hizmetten ayrıldığında kaydedilir.

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

Azure Web PubSub hizmetindeki canlı izleme aracı, kaynak günlüklerini gerçek zamanlı olarak toplayabilir 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.

Canlı izleme aracını kullanırken aşağıdaki faktörleri dikkate almanız gerekir:

  • Canlı izleme aracının yakaladığı gerçek zamanlı kaynak günlükleri, ileti (giden trafik) olarak faturalandırılır.
  • Azure Web PubSub hizmetinin Ücretsiz katman örneğinde günlük 20.000 ileti (giden trafik) sınırı vardır. Canlı izleme kullanarak beklenmedik şekilde günlük sınıra ulaşabilirsiniz.
  • Canlı izleme aracı şu anda Microsoft Entra yetkilendirmesini desteklemez. Canlı izleme kullanmak için erişim anahtarlarını etkinleştirmeniz gerekir. Ayarlar'ın altında Anahtarlar'ı seçin ve ardından Erişim Anahtarı'nı etkinleştirin.

Canlı izleme aracını başlatma

Erişim anahtarını etkinleştirdiğinizde, canlı izleme aracının kimliğini doğrulamak için erişim belirtecini kullanırsınız. Aksi takdirde, canlı izleme aracının kimliğini doğrulamak için Microsoft Entra Id kullanırsınız. Azure portalında Azure SignalR Hizmeti örneğinizdeki Anahtarlar bölmesine giderek erişim anahtarının etkinleştirilip etkinleştirilmediğini öğrenebilirsiniz.

Erişim anahtarı etkinleştirildiğinde canlı izlemeyi açma

  1. Azure portalına ve SignalR Hizmeti bölmenize gidin.

  2. Hizmet menüsündeki İ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.

    Canlı izleme aracını açma işleminin ekran görüntüsü.

Erişim anahtarı devre dışı bırakıldığında canlı izleme aracını açma

Kendinize canlı izleme aracı API'si izni atama

  1. Azure portalına ve SignalR Hizmeti bölmenize gidin.

  2. Erişim denetimi (IAM) öğesini seçin.

  3. +Ekle'yi ve ardından Rol ataması'ı seçin.

  4. İş işlevi rolleri sekmesinde sahip rolünü SignalR Hizmeti ve ardından İleri'yi seçin.

  5. Üyeler bölmesinde +Üyeleri seç'e tıklayın.

  6. Üyeleri arayıp seçin ve ardından Seç'e tıklayın.

  7. Gözden geçir ve ata'yı seçin ve tamamlanma bildirimini bekleyin.

Canlı izleme aracını etkinleştirme

  1. Azure portalına ve SignalR Hizmeti bölmenize gidin.

  2. Hizmet menüsündeki İ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.

    Canlı izleme aracını açma işleminin ekran görüntüsü.

Microsoft hesabınızla oturum açın

  1. Canlı izleme aracı bir Microsoft oturum açma penceresinin açılmasına neden olur. Pencere açılmazsa tarayıcı ayarlarınızda açılır pencerelere izin verin.

  2. Durum çubuğunda Hazır'ın görünmesini bekleyin.

Kaynak günlüklerini yakalama

Canlı izleme aracı, sorun giderme için kaynak günlüklerini yakalamanıza yardımcı olabilir.

  • Yakalama , Azure Web PubSub'dan gerçek zamanlı kaynak günlüklerini yakalamaya başlar.
  • Yakalanan gerçek zamanlı kaynak günlüklerini temizler .
  • Günlük filtresi , yakalanan gerçek zamanlı kaynak günlüklerini belirli bir anahtar sözcükle filtreler. Boşluk, virgül ve noktalı virgül gibi ortak ayırıcılar anahtar sözcüğün bir parçası olarak değerlendirilir.
  • 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.

Canlı izleme aracıyla kaynak günlüklerini yakalama işleminin ekran görüntüsü.

Canlı izleme aracı tarafından yakalanan gerçek zamanlı kaynak günlükleri, sorun giderme için ayrıntılı bilgiler içerir.

Veri Akışı Adı Açıklama
Time Olay saatini günlüğe kaydetme
Günlük Düzeyi Günlük olay düzeyi (Trace, Debug, InformationalWarning veya Error)
Olay Adı Olayın işlem adı
İleti 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ğlantı Kimliği Bağlantının kimliği
Kullanıcı Kimliği Kullanıcı kimliği
IP İstemci IP adresi
Rota Şablonu API'nin rota şablonu
HTTP Yöntemi HTTP yöntemi (POST, GETveya PUTDELETE)
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 http isteği veya yanıtı ile istemci ve sunucu tarafından 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 portala gidin.

  2. Azure Web PubSub hizmet örneğinizin Tanılama ayarları bölmesinde + Tanılama ayarı ekle'yi seçin.

    Tanılama ayarlarını görüntüleme ve yenisini oluşturma işleminin ekran görüntüsü.

  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 seçin.

    Tanılama ayarını yapılandırma işleminin ekran görüntüsü.

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

    Not

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

Azure depolama hesabına 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üklerindeki JSON dizeleri aşağıdaki tablolarda listelenen öğeleri içerir.

Biçimlendir

Veri Akışı Adı Açıklama
time Olay saatini günlüğe kaydetme
level Günlük olay düzeyi
resourceId Azure SignalR Hizmeti örneğinizin kaynak kimliği
location Azure SignalR Hizmeti örneğinizin konumu
category Günlük olayının kategorisi
operationName Olayın işlem adı
callerIpAddress Sunucunuzun veya istemcinizin IP adresi
properties Bu günlük olayıyla ilgili ayrıntılı özellikler (aşağıdaki tabloya bakın)

Özellikler tablosu

Veri Akışı Adı Açıklama
collection Günlük olayının (ConnectionAuthorizationveya Throttling) koleksiyonu
connectionId Bağlantının kimliği
userId Kullanıcının kimliği
message Günlük olayının ayrıntılı iletisi
hub Kullanıcı tanımlı hub adı
routeTemplate API'nin rota şablonu
httpMethod HTTP yöntemi (POST, GETveya PUTDELETE)
url Tekdüzen kaynak bulucu
traceId Çağırmanın benzersiz tanımlayıcısı
statusCode HTTP yanıt kodu
duration İsteğin alındığı ve işlendiği zaman arasındaki süre
headers http isteği veya yanıtı ile istemci ve sunucu tarafından geçirilen ek bilgiler

Aşağıdaki kod, arşiv günlüğündeki bir 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ı bölmesindeki Hedef ayrıntıları'nın altında Log Analytics çalışma alanına gönder'i seçin.

  2. Abonelik için kullanmak istediğiniz aboneliği seçin.

  3. Günlüklerin hedefi için 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 çalışma alanınızda Günlükler'i seçin.

    Log Analytics menü öğesinin ekran görüntüsü.

  2. Günlüğü sorgulamak için , WebPubSubMessagingveya WebPubSubHttpRequestgirin WebPubSubConnectivityve zaman aralığını seçin. Gelişmiş sorgular için bkz . Azure İzleyici'de Log Analytics'i kullanmaya başlama.

    Log Analytics'teki bir sorgunun ekran görüntüsü.

SignalR hizmeti için örnek bir sorgu kullanmak için şu adımları izleyin:

  1. Hedef Log Analytics çalışma alanınızda Günlükler'i seçin.

  2. Sorgu gezginini açmak için Sorgular'ı seçin.

  3. Örnek sorguları kaynak türüne göre gruplandırmak için Kaynak türü'nü seçin.

  4. Betiği çalıştırmak için Çalıştır'ı seçin.

    Log Analytics'teki örnek sorgunun ekran görüntüsü.

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

Veri Akışı Adı Açıklama
TimeGenerated Olay saatini günlüğe kaydetme
Collection Günlük olayının (Connection, Authorizationve Throttling) koleksiyonu
OperationName Olayın işlem adı
Location Azure SignalR Hizmeti örneğinizin konumu
Level Günlük olay düzeyi
CallerIpAddress Sunucunuzun/istemcinizin IP adresi
Message Günlük olayının ayrıntılı iletisi
UserId Kullanıcının kimliği
ConnectionId Bağlantının kimliği
ConnectionType Bağlantının türü (Server, sunucu tarafından bir bağlantı; ve Clientistemci tarafından bir bağlantı)
TransportType Bağlantının aktarım türü (Websockets, ServerSentEventsve LongPolling)

Sorun gidermek için kaynak günlüklerini kullanma

Bağlantı sayısında beklenmeyen artışlar veya düşüşler bulursanız, kaynak günlüklerini kullanarak sorunu giderebilirsiniz. Olası sorunlar arasında beklenmeyen bağlantı miktarı değişiklikleri, bağlantı sınırlarına ulaşan bağlantılar ve yetkilendirme hatası sayılabilir.

Beklenmeyen bağlantı kesme olayları

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

ile ConnectionEnded arasındaki ConnectionAborted fark, ConnectionEnded istemci veya sunucu tarafı tarafından tetiklenen beklenen bir bağlantı kesilmesidir. Buna karşılık, ConnectionAborted genellikle bir bağlantının beklenmedik bir şekilde düştüğü ve bağlantı kesilmesinin nedeninin içinde messagesağlandığı bir olayı ifade eder.

Aşağıdaki tabloda beklenmeyen bir bağlantı kesilmesinin nedenleri listelendi.

Neden Açıklama
Bağlantı sayısı sınıra ulaştı Bağlantı 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 bir hata oluşur. Kurtarma otomatik olmalıdır.

Bağlantılarda beklenmeyen artış

İstemci bağlantılarının sayısı beklenmedik şekilde arttığında bu adımları izlemeniz gerekir. İlk olarak gereksiz bağlantıları filtreleyin ve 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 fark ederseniz, 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 hedef kitleleri 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 fiyatlandırması.