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ı
Azure portalına ve SignalR Hizmeti sayfanıza gidin.
Soldaki menüden İzleme'nin altında Canlı izleme ayarları'nı seçin.
Canlı İzlemeyi Etkinleştir'i seçin.
Kaydet düğmesini seçin. Değişikliklerin geçerli olması biraz zaman alır.
Güncelleştirme tamamlandığında Canlı İzleme Aracını Aç'ı seçin.
Erişim anahtarı devre dışı bırakılacak adımlar
Kendinize canlı izleme aracı API'si izni atama
- Azure portalına ve SignalR Hizmeti sayfanıza gidin.
- Erişim denetimi (IAM) öğesini seçin.
- Yeni sayfada + Ekle'ye ve ardından Rol ataması'na tıklayın.
- Yeni sayfada İş işlevi rolleri sekmesine odaklanın, sahip rolü SignalR Hizmeti seçin ve İleri'ye tıklayın.
- Üyeler sayfasında +Üyeleri seç'e tıklayın.
- Yeni panelde üyeleri arayın ve seçin ve ardından Seç'e tıklayın.
- Gözden geçir ve ata'ya tıklayın ve tamamlanma bildirimini bekleyin.
Canlı izleme aracını ziyaret edin
Azure portalına ve SignalR Hizmeti sayfanıza gidin.
Soldaki menüden İzleme'nin altında Canlı izleme ayarları'nı seçin.
Canlı İzlemeyi Etkinleştir'i seçin.
Kaydet düğmesini seçin. Değişikliklerin geçerli olması biraz zaman alır.
Güncelleştirme tamamlandığında Canlı İzleme Aracını Aç'ı seçin.
Microsoft hesabınızla oturum açın
- 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.
- 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.
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.
Azure portal'a gidin.
Azure Web PubSub hizmet örneğinizin Tanılama ayarları sayfasında + Tanılama ayarı ekle'yi seçin.
Tanılama ayarı adı alanına ayar adını girin.
Kategori ayrıntıları bölümünde ihtiyacınız olan günlük kategorilerini seçin.
Hedef ayrıntıları bölümünde Depolama hesabına arşivle'yi işaretleyin.
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.json
depolanır. Yol ve Date Time
ile resource ID
birleştirilir. Günlük dosyaları ile hour
bö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:
- Tanılama ayarı sayfasındaki Hedef ayrıntıları'nın altında **Log Analytics çalışma alanına gönder'i seçin.
- Kullanmak istediğiniz Aboneliği seçin.
- 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:
Hedef Log Analytics'inizi seçin
Logs
.yazın
WebPubSubMessaging
veyaWebPubSubHttpRequest
yazınWebPubSubConnectivity
ve 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.
SignalR hizmeti için örnek bir sorgu kullanmak için aşağıdaki adımları izleyin.
- Hedef Log Analytics'inizi seçin
Logs
. - Sorgu gezginini açmak için seçin
Queries
. - Kaynak türündeki örnek sorguları gruplandırmak için seçin
Resource type
. - Betiği çalıştırmak için öğesini seçin
Run
.
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
operationName
bağ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 message
sağ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ı.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin