Gunakan laporan kesehatan sistem untuk memecahkan masalah

Komponen Azure Service Fabric memberikan laporan kesehatan sistem pada semua entitas dalam kluster langsung di luar kebiasaan. Penyimpanan kesehatan membuat dan menghapus entitas berdasarkan laporan sistem. Ini juga mengatur entitas dalam hierarki yang mengambil interaksi entitas.

Catatan

Untuk memahami konsep terkait kesehatan, baca selengkapnya di model kesehatan Service Fabric.

Laporan kesehatan sistem memberikan visibilitas tentang fungsi kluster dan aplikasi, dan menandai masalah. Untuk aplikasi dan layanan, laporan kesehatan sistem memastikan bahwa entitas diimplementasikan dan berperilaku dengan benar dari perspektif Service Fabric. Laporan tidak menyediakan pemantauan kesehatan terhadap logika bisnis layanan atau deteksi proses apa pun yang berhenti merespons. Layanan pengguna dapat memperkaya data kesehatan dengan informasi khusus untuk logikanya.

Catatan

Laporan kesehatan yang dikirim oleh pengawas pengguna hanya dapat dilihat terlihat setelah komponen sistem membuat entitas. Saat entitas dihapus, penyimpanan kesehatan otomatis menghapus semua laporan kesehatan yang terkait dengannya. Hal yang sama juga berlaku ketika instans baru entitas dibuat. Contohnya adalah ketika instans replika layanan tetap berstatus baru dibuat. Semua laporan yang terkait dengan instans lama dihapus dan dibersihkan dari penyimpanan.

Laporan komponen sistem diidentifikasi oleh sumber, yang dimulai dengan prefiks "System.". Pengawas tidak dapat menggunakan awalan yang sama untuk sumbernya, karena laporan dengan parameter yang tidak valid akan ditolak.

Mari kita lihat beberapa laporan sistem untuk memahami apa yang memicunya dan mempelajari cara memperbaiki potensi masalah yang ditimbulkan.

Catatan

Service Fabric tetap menambahkan laporan tentang kondisi yang dimaksudkan yang meningkatkan visibilitas ke dalam apa yang terjadi di kluster dan aplikasi. Laporan yang sudah ada dapat disempurnakan dengan detail selengkapnya untuk memecahkan masalah dengan cepat.

Laporan kesehatan sistem kluster

Entitas kesehatan kluster dibuat otomatis di penyimpanan kesehatan. Jika semuanya bekerja dengan baik, laporan sistem tidak akan dibuat.

Kehilangan lingkungan

System.Federation melaporkan kesalahan saat mendeteksi kehilangan lingkungan. Laporan ini berasal dari node individual, dan ID simpul disertakan dalam nama properti. Jika satu lingkungan hilang di seluruh cincin Service Fabric, Anda biasanya dapat mengharapkan dua peristiwa yang mewakili kedua sisi laporan kesenjangan. Jika ada lebih banyak lingkungan yang hilang, akan ada lebih banyak peristiwa.

Laporan ini menentukan batas waktu penyewaan global sebagai time-to-live (TTL). Laporan dikirim kembali setiap setengah durasi TTL selama kondisi tetap aktif. Peristiwa dihapus otomatis saat kedaluwarsa. Perilaku hapus-saat-kedaluwarsa memastikan bahwa laporan dibersihkan dari penyimpanan kesehatan dengan benar, bahkan jika simpul pelaporan mengalami gangguan.

  • SourceId: System.Federation
  • Properti: Dimulai dengan Lingkungan dan mencakup informasi simpul.
  • Langkah selanjutnya: Selidiki mengapa lingkungan hilang. Misalnya, periksa komunikasi antara node kluster.

Pembuatan ulang

Layanan Failover Manager (FM) mengelola informasi tentang node kluster. Jika FM kehilangan datanya dan mengalami kehilangan data, FM tidak dapat menjamin bahwa FM memiliki informasi terbaru tentang node kluster. Dalam hal ini, sistem melalui pembuatan ulang, dan System.FM mengumpulkan data dari semua simpul dalam kluster untuk membangun kembali statusnya. Terkadang, karena masalah jaringan atau simpul, pembuatan kembali bisa macet. Hal yang sama dapat terjadi pada layanan Failover Manager Master (FMM). FMM adalah layanan sistem tanpa status yang terus melacak keberadaan semua FM dalam kluster. Primer FMM selalu berupa simpul dengan ID yang terdekat dengan 0. Jika simpul tersebut mengalami penurunan, pembuatan ulang akan dipicu. Jika salah satu kondisi sebelumnya terjadi, System.FM atau System.FMM akan menandainya melalui laporan kesalahan. Pembuatan ulang mungkin macet dalam salah satu dari dua tahap:

  • Menunggu siaran: FM/FMM menunggu balasan pesan siaran dari simpul lainnya.

    • Langkah selanjutnya: Selidiki apakah ada masalah koneksi jaringan antar-simpul.
  • Menunggu simpul: FM/FMM sudah menerima balasan siaran dari simpul lain dan sedang menunggu balasan dari simpul tertentu. Laporan kesehatan mencantumkan simpul yang respons-nya ditunggu oleh FM/FMM.

    • Langkah selanjutnya: Selidiki koneksi jaringan antara FM/ FMM dan simpul yang tercantum. Selidiki setiap node yang tercantum untuk mengetahui kemungkinan masalah lainnya.
  • SourceID: System.FM atau System.FMM

  • Properti: Buat ulang.

  • Langkah selanjutnya: Selidiki koneksi jaringan antar-simpul, serta status simpul tertentu yang tercantum dalam deskripsi laporan kesehatan.

Status node seed

System.FM melaporkan peringatan tingkat kluster jika beberapa node seed tidak sehat. Node seed adalah simpul yang mempertahankan ketersediaan kluster yang mendasarinya. Simpul nilai membantu memastikan bahwa kluster tetap terjaga dengan menetapkan sewa dengan simpul lain dan berfungsi sebagai pemutus ikatan selama jenis kegagalan tertentu terjadi. Jika mayoritas node seed mengalami penurunan kluster dan tidak dikembalikan, kluster tersebut akan dimatikan secara otomatis.

Node seed tidak sehat jika status simpulnya Turun, Dihapus, atau Tidak Dikenal. Laporan peringatan untuk status node seed akan mencantumkan semua node seed yang tidak sehat dengan informasi terperinci.

  • SourceID: System.FM
  • Properti: SeedNodeStatus
  • Langkah berikutnya: Jika peringatan ini muncul di kluster, ikuti petunjuk di bawah untuk memperbaikinya: Untuk cluster yang menjalankan Service Fabric versi 6.5 atau yang lebih baru: Untuk kluster Service Fabric di Azure, setelah node seed turun, Service Fabric akan mencoba mengubahnya menjadi node non-seed secara otomatis. Untuk mewujudkannya, pastikan jumlah node non-seed dengan jenis tipe simpul primer lebih besar atau sama dengan jumlah node seed yang Turun. Jika perlu tambahkan lebih banyak simpul ke jenis simpul primer untuk mencapainya. Bergantung pada status kluster, mungkin diperlukan waktu untuk memperbaiki masalah. Setelah ini selesai, laporan peringatan dibersihkan secara otomatis.

Untuk kluster mandiri Service Fabric, untuk menghapus laporan peringatan, semua simpul benih harus menjadi sehat. Bergantung pada mengapa node seed tidak sehat, tindakan yang berbeda perlu diambil: jika node seed Turun, pengguna perlu menaikkan node seed tersebut; jika node seed Dihapus atau Tidak Dikenal, node seed ini harus dihapus dari kluster. Laporan peringatan dibersihkan otomatis saat semua node seed menjadi sehat.

Untuk kluster yang menjalankan Service Fabric dengan versi yang lebih lama dari 6.5: Dalam hal ini, laporan peringatan perlu dihapus secara manual. Pengguna harus memastikan bahwa semua node seed menjadi sehat sebelum menghapus laporan: jika node seed Turun, pengguna harus menaikkan node seed tersebut;jika node seed Dihapus atau Tidak Dikenal, node seed tersebut harus dihapus dari kluster. Setelah semua node seed menjadi sehat, gunakan perintah berikut dari Powershell untuk menghapus laporan peringatan:

PS C:\> Send-ServiceFabricClusterHealthReport -SourceId "System.FM" -HealthProperty "SeedNodeStatus" -HealthState OK

Laporan kesehatan sistem node

System.FM, yang mewakili layanan Failover Manager, adalah otoritas yang mengelola informasi tentang node kluster. Setiap node harus memiliki satu laporan System.FM yang menunjukkan statusnya. Entitas node dihapus ketika status node dihapus. Untuk informasi lebih lanjut, lihat RemoveNodeStateAsync.

Node aktif/tidak aktif

System.FM melaporkan status OK ketika node bergabung dengan ring (sudah aktif dan berjalan). System.FM melaporkan kesalahan ketika node meninggalkan ring (tidak aktif, baik untuk peningkatan atau memang karena node itu telah gagal). Hierarki kesehatan yang dibangun oleh penyimpanan kesehatan bertindak pada entitas yang disebarkan yang berkaitan dengan laporan node System.FM. Hierarki ini menganggap node sebagai induk virtual dari semua entitas yang disebarkan. Entitas yang disebarkan pada node tersebut diekspos melalui kueri jika nodenya berstatus aktif yang dilaporkan oleh System.FM, dengan instans yang sama dengan instans yang terkait dengan entitas. Ketika System.FM melaporkan bahwa nodenya sedang tidak aktif atau memulai ulang, sebagai instans baru, penyimpanan kesehatan secara otomatis membersihkan entitas yang disebarkan yang hanya dapat berada pada node nonaktif itu atau pada instans node sebelumnya.

  • SourceId: System.FM
  • Properti: Status.
  • Langkah berikutnya: Jika node tidak aktif karena peningkatan, node akan kembali aktif setelah ditingkatkan. Dalam hal ini, status kesehatan akan beralih kembali ke OK. Jika node tidak kembali aktif atau gagal, masalah ini perlu penyelidikan lebih lanjut.

Contoh berikut menunjukkan kejadian System.FM dengan status kesehatan OK untuk node aktif:

PS C:\> Get-ServiceFabricNodeHealth  _Node_0

NodeName              : _Node_0
AggregatedHealthState : Ok
HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 8
                        SentAt                : 7/14/2017 4:54:51 PM
                        ReceivedAt            : 7/14/2017 4:55:14 PM
                        TTL                   : Infinite
                        Description           : Fabric node is up.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

Masa berlaku sertifikat

System.FabricNode melaporkan peringatan saat masa berlaku sertifikat yang digunakan oleh simpul segera berakhir. Ada tiga sertifikat per simpul: Certificate_cluster, Certificate_server, dan Certificate_default_client. Jika akhir masa berlakunya sudah lebih dari dua minggu, status kesehatan laporan OK. Jika akhir masa berlakunya dalam dua minggu, jenis laporannya adalah peringatan. TTL dari peristiwa ini tidak terbatas, dan peristiwa tersebut dihapus saat terdapat simpul yang keluar dari kluster.

  • SourceId: System.FabricNode
  • Properti: Dimulai dengan Sertifikat dan berisi informasi lebih lanjut tentang jenis sertifikat.
  • Langkah berikutnya: Perbarui sertifikat jika masa berlakunya hampir berakhir.

Pelanggaran kapasitas beban

Service Fabric Load Balancer melaporkan peringatan ketika mendeteksi pelanggaran kapasitas simpul.

  • SourceId: System.PLB
  • Properti: Dimulai dengan Kapasitas.
  • Langkah selanjutnya: Periksa metrik yang disediakan dan lihat kapasitas saat ini pada simpul.

Kapasitas simpul tidak cocok untuk metrik tata kelola sumber daya

System.Hosting melaporkan peringatan jika kapasitas simpul yang ditentukan dalam manifes kluster lebih besar daripada kapasitas simpul yang sebenarnya untuk metrik tata kelola sumber daya (memori dan inti CPU). Laporan kesehatan muncul saat paket layanan pertama yang menggunakan tata kelola sumber didaftarkan di simpul tertentu.

  • SourceId: System.Hosting
  • Properti: ResourceGovernance.
  • Langkah selanjutnya: Masalah ini bisa terjadi karena paket layanan yang mengatur tidak diberlakukan seperti yang diharapkan dan tata kelola sumber daya tidak berfungsi dengan baik. Perbarui manifes kluster dengan kapasitas simpul yang benar untuk metrik ini, atau jangan tentukan dan biarkan Service Fabric secara otomatis mendeteksi sumber daya yang tersedia.

Laporan kesehatan sistem aplikasi

System.CM, yang mewakili layanan Cluster Manager, adalah otoritas yang mengelola informasi tentang aplikasi.

Provinsi

System.CM melaporkan OK jika aplikasi telah dibuat atau diperbarui. Laporan ini berisi informasi tentang penyimpanan kesehatan saat aplikasi dihapus sehingga dapat dihapus dari penyimpanan.

  • SourceId: System.CM
  • Properti: Status.
  • Langkah selanjutnya: Jika aplikasi telah dibuat atau diperbarui, laporan kesehatan Cluster Manager akan dicakup. Jika tidak, periksa status aplikasi dengan mengajukan kueri. Misalnya, gunakan cmdlet PowerShell Get-ServiceFabricApplication -ApplicationNameapplicationName.

Contoh berikut menunjukkan peristiwa status pada aplikasi fabric:/WordCount:

PS C:\> Get-ServiceFabricApplicationHealth fabric:/WordCount -ServicesFilter None -DeployedApplicationsFilter None -ExcludeHealthStatistics

ApplicationName                 : fabric:/WordCount
AggregatedHealthState           : Ok
ServiceHealthStates             : None
DeployedApplicationHealthStates : None
HealthEvents                    : 
                                  SourceId              : System.CM
                                  Property              : State
                                  HealthState           : Ok
                                  SequenceNumber        : 282
                                  SentAt                : 7/13/2017 5:57:05 PM
                                  ReceivedAt            : 7/14/2017 4:55:10 PM
                                  TTL                   : Infinite
                                  Description           : Application has been created.
                                  RemoveWhenExpired     : False
                                  IsExpired             : False
                                  Transitions           : Error->Ok = 7/13/2017 5:57:05 PM, LastWarning = 1/1/0001 12:00:00 AM

Laporan kesehatan sistem kluster

System.CM, yang mewakili layanan Failover Manager, adalah otoritas yang mengelola informasi tentang layanan.

Provinsi

System.FM melaporkan OK jika layanan telah dibuat. Entitas akan dihapus dari penyimpanan kesehatan jika layanan dihapus.

  • SourceId: System.FM
  • Properti: Status.

Contoh berikut menunjukkan peristiwa status pada layanan fabric:/WordCount/WordCountWebService:

PS C:\> Get-ServiceFabricServiceHealth fabric:/WordCount/WordCountWebService -ExcludeHealthStatistics

ServiceName           : fabric:/WordCount/WordCountWebService
AggregatedHealthState : Ok
PartitionHealthStates : 
                        PartitionId           : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
                        AggregatedHealthState : Ok

HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 14
                        SentAt                : 7/13/2017 5:57:05 PM
                        ReceivedAt            : 7/14/2017 4:55:10 PM
                        TTL                   : Infinite
                        Description           : Service has been created.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM

Kesalahan korelasi layanan

System.PLB melaporkan kesalahan saat mendeteksi bahwa pembaruan layanan berkorelasi dengan layanan lain yang menciptakan rantai afinitas. Laporan dibersihkan saat pembaruan berhasil terjadi.

  • SourceId: System.PLB
  • Properti: ServiceDescription.
  • Langkah selanjutnya: Periksa deskripsi layanan yang berkorelasi.

Laporan kesehatan sistem partisi

System.CM, yang mewakili layanan Failover Manager, adalah otoritas yang mengelola informasi tentang partisi layanan.

Provinsi

System.FM melaporkan OK jika partisi telah dibuat dan sehat. Entitas akan dihapus dari penyimpanan kesehatan jika partisi dihapus.

Jika partisi kurang dari jumlah replika minimum, partisi akan melaporkan kesalahan. Jika partisi kurang dari jumlah replika minimum, tetapi berada di bawah jumlah replika target, peringatan akan dilaporkan. Jika partisi mengalami kehilangan kuorum, System.FM akan melaporkan kesalahan.

Peristiwa penting lainnya mencakup peringatan saat konfigurasi ulang memakan waktu lebih lama dari yang diharapkan dan saat build membutuhkan waktu lebih lama dari yang diharapkan. Waktu yang diharapkan untuk build dan konfigurasi ulang dapat dikonfigurasi berdasarkan skenario layanan. Misalnya, jika layanan memiliki status terabyte, seperti Azure SQL Database, build membutuhkan waktu lebih lama daripada untuk layanan dengan status dalam jumlah kecil.

  • SourceId: System.FM
  • Properti: Status.
  • Langkah selanjutnya: Jika status kesehatan tidak OK, beberapa replika mungkin belum dibuat, dibuka, atau dipromosikan ke primer atau sekunder dengan benar.

Jika deskripsi menjelaskan kehilangan kuorum, pemeriksaan laporan kesehatan terperinci untuk replika yang turun dan menaikkannya kembali akan membantu membuat partisi online kembali.

Jika deskripsi menjelaskan partisi macet dalam konfigurasi ulang, laporan kesehatan pada replika utama memberikan informasi tambahan.

Untuk laporan kesehatan System.FM lainnya, akan ada laporan tentang replika atau partisi atau layanan dari komponen sistem lainnya.

Contoh berikut menjelaskan beberapa laporan ini.

Contoh berikut menunjukkan partisi yang sehat:

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountWebService | Get-ServiceFabricPartitionHealth -ExcludeHealthStatistics -ReplicasFilter None

PartitionId           : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
AggregatedHealthState : Ok
ReplicaHealthStates   : None
HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 70
                        SentAt                : 7/13/2017 5:57:05 PM
                        ReceivedAt            : 7/14/2017 4:55:10 PM
                        TTL                   : Infinite
                        Description           : Partition is healthy.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM

Contoh berikut menunjukkan kesehatan partisi yang berada di bawah jumlah replika target. Langkah selanjutnya adalah mendapatkan deskripsi partisi, yang menunjukkan cara partisi dikonfigurasi: MinReplicaSetSize adalah tiga dan TargetReplicaSetSize adalah tujuh. Kemudian, dapatkan jumlah simpul dalam kluster, yang dalam hal ini berjumlah lima. Jadi, dalam hal ini, dua replika tidak dapat ditempatkan, karena jumlah target replika lebih tinggi daripada jumlah simpul yang tersedia.

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricPartitionHealth -ReplicasFilter None -ExcludeHealthStatistics

PartitionId           : af2e3e44-a8f8-45ac-9f31-4093eb897600
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning', ConsiderWarningAsError=false.

ReplicaHealthStates   : None
HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Warning
                        SequenceNumber        : 123
                        SentAt                : 7/14/2017 4:55:39 PM
                        ReceivedAt            : 7/14/2017 4:55:44 PM
                        TTL                   : Infinite
                        Description           : Partition is below target replica or instance count.
                        fabric:/WordCount/WordCountService 7 2 af2e3e44-a8f8-45ac-9f31-4093eb897600
                          N/S Ready _Node_2 131444422260002646
                          N/S Ready _Node_4 131444422293113678
                          N/S Ready _Node_3 131444422293113679
                          N/S Ready _Node_1 131444422293118720
                          N/P Ready _Node_0 131444422293118721
                          (Showing 5 out of 5 replicas. Total available replicas: 5)

                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 7/14/2017 4:55:44 PM, LastOk = 1/1/0001 12:00:00 AM

                        SourceId              : System.PLB
                        Property              : ServiceReplicaUnplacedHealth_Secondary_af2e3e44-a8f8-45ac-9f31-4093eb897600
                        HealthState           : Warning
                        SequenceNumber        : 131445250939703027
                        SentAt                : 7/14/2017 4:58:13 PM
                        ReceivedAt            : 7/14/2017 4:58:14 PM
                        TTL                   : 00:01:05
                        Description           : The Load Balancer was unable to find a placement for one or more of the Service's Replicas:
                        Secondary replica could not be placed due to the following constraints and properties:  
                        TargetReplicaSetSize: 7
                        Placement Constraint: N/A
                        Parent Service: N/A

                        Constraint Elimination Sequence:
                        Existing Secondary Replicas eliminated 4 possible node(s) for placement -- 1/5 node(s) remain.
                        Existing Primary Replica eliminated 1 possible node(s) for placement -- 0/5 node(s) remain.

                        Nodes Eliminated By Constraints:

                        Existing Secondary Replicas -- Nodes with Partition's Existing Secondary Replicas/Instances:
                        --
                        FaultDomain:fd:/4 NodeName:_Node_4 NodeType:NodeType4 UpgradeDomain:4 UpgradeDomain: ud:/4 Deactivation Intent/Status: None/None
                        FaultDomain:fd:/3 NodeName:_Node_3 NodeType:NodeType3 UpgradeDomain:3 UpgradeDomain: ud:/3 Deactivation Intent/Status: None/None
                        FaultDomain:fd:/2 NodeName:_Node_2 NodeType:NodeType2 UpgradeDomain:2 UpgradeDomain: ud:/2 Deactivation Intent/Status: None/None
                        FaultDomain:fd:/1 NodeName:_Node_1 NodeType:NodeType1 UpgradeDomain:1 UpgradeDomain: ud:/1 Deactivation Intent/Status: None/None

                        Existing Primary Replica -- Nodes with Partition's Existing Primary Replica or Secondary Replicas:
                        --
                        FaultDomain:fd:/0 NodeName:_Node_0 NodeType:NodeType0 UpgradeDomain:0 UpgradeDomain: ud:/0 Deactivation Intent/Status: None/None

                        RemoveWhenExpired     : True
                        IsExpired             : False
                        Transitions           : Error->Warning = 7/14/2017 4:56:14 PM, LastOk = 1/1/0001 12:00:00 AM

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | select MinReplicaSetSize,TargetReplicaSetSize

MinReplicaSetSize TargetReplicaSetSize
----------------- --------------------
                2                    7

PS C:\> @(Get-ServiceFabricNode).Count
5

Contoh berikut menunjukkan kesehatan partisi yang macet dalam konfigurasi ulang karena pengguna tidak mematuhi token pembatalan dalam metode RunAsync. Menyelidiki laporan kesehatan setiap replika yang ditandai sebagai primer (P) dapat membantu untuk menelusuri lebih lanjut ke dalam masalah.

PS C:\utilities\ServiceFabricExplorer\ClientPackage\lib> Get-ServiceFabricPartitionHealth 0e40fd81-284d-4be4-a665-13bc5a6607ec -ExcludeHealthStatistics

PartitionId           : 0e40fd81-284d-4be4-a665-13bc5a6607ec
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Warning
                        SequenceNumber        : 7
                        SentAt                : 8/27/2017 3:43:09 AM
                        ReceivedAt            : 8/27/2017 3:43:32 AM
                        TTL                   : Infinite
                        Description           : Partition reconfiguration is taking longer than expected.
                        fabric:/app/test1 3 1 0e40fd81-284d-4be4-a665-13bc5a6607ec
                          P/S Ready Node1 131482789658160654
                          S/P Ready Node2 131482789688598467
                          S/S Ready Node3 131482789688598468
                          (Showing 3 out of 3 replicas. Total available replicas: 3)

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Ok->Warning = 8/27/2017 3:43:32 AM, LastError = 1/1/0001 12:00:00 AM

Laporan kesehatan ini menunjukkan status replika partisi yang mengalami konfigurasi ulang:

  P/S Ready Node1 131482789658160654
  S/P Ready Node2 131482789688598467
  S/S Ready Node3 131482789688598468

Untuk setiap replika, laporan kesehatan berisi:

  • Peran konfigurasi sebelumnya
  • Peran konfigurasi saat ini
  • Status replika
  • Simpul tempat replika dijalankan
  • ID Replika

Dalam kasus seperti contoh, penyelidikan lebih lanjut diperlukan. Selidiki kesehatan setiap replika individu yang dimulai dengan replika yang ditandai sebagai Primary dan Secondary (131482789658160654 dan 131482789688598467) dalam contoh sebelumnya.

Pelanggaran batasan replika

System.PLB melaporkan peringatan jika mendeteksi pelanggaran batasan replika dan tidak dapat menempatkan semua replika partisi. Detail laporan menunjukkan batasan dan properti mana yang mencegah penempatan replika.

  • SourceId: System.PLB
  • Properti: Dimulai dengan ReplicaConstraintViolation.

Laporan kesehatan sistem replika

System.RA, yang mewakili komponen agen konfigurasi ulang, adalah otoritas untuk status replika.

Provinsi

System.RA melaporkan OK jika replika telah dibuat.

  • SourceId: System.RA
  • Properti: Status.

Contoh berikut menunjukkan replika yang sehat:

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricReplica | where {$_.ReplicaRole -eq "Primary"} | Get-ServiceFabricReplicaHealth

PartitionId           : af2e3e44-a8f8-45ac-9f31-4093eb897600
ReplicaId             : 131444422293118721
AggregatedHealthState : Ok
HealthEvents          : 
                        SourceId              : System.RA
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 131445248920273536
                        SentAt                : 7/14/2017 4:54:52 PM
                        ReceivedAt            : 7/14/2017 4:55:13 PM
                        TTL                   : Infinite
                        Description           : Replica has been created._Node_0
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/14/2017 4:55:13 PM, LastWarning = 1/1/0001 12:00:00 AM

ReplicaOpenStatus, ReplicaCloseStatus, ReplicaChangeRoleStatus

Properti ini digunakan untuk mengindikasikan peringatan atau kegagalan saat mencoba membuka replika, menutup replika, atau melakukan transisi replika dari satu peran ke peran lainnya. Untuk informasi selengkapnya, lihat Siklus hidup replika. Kegagalan mungkin berupa pengecualian yang dikeluarkan dari panggilan API atau crash dari proses host layanan selama waktu ini. Untuk kegagalan karena panggilan API dari kode C#, Service Fabric menambahkan pengecualian dan jejak tumpukan ke laporan kesehatan.

Peringatan kesehatan ini muncul setelah mencoba lagi tindakan secara lokal beberapa kali (bergantung pada kebijakan). Service Fabric mencoba lagi tindakan hingga ambang batas maksimum. Setelah ambang batas maksimum tercapai, Service Fabric mungkin mencoba tindakan untuk memperbaiki situasi. Upaya ini dapat menyebabkan peringatan ini dihapus karena tindakan tidak dilakukan lagi pada simpul ini. Misalnya, jika replika gagal dibuka pada simpul, Service Fabric akan menampilkan peringatan kesehatan. Jika replika tetap gagal dibuka, Service Fabric bertindak untuk memperbaiki diri. Tindakan ini mungkin melibatkan percobaan operasi yang sama pada simpul lain. Upaya ini menyebabkan peringatan yang ditampilkan agar replika ini dibersihkan.

  • SourceId: System.RA
  • Properti: ReplicaOpenStatus, ReplicaCloseStatus, dan ReplicaChangeRoleStatus.
  • Langkah selanjutnya: Selidiki kode layanan atau crash dump untuk mengidentifikasi alasan kegagalan operasi.

Contoh berikut menunjukkan kesehatan replika yang melempar TargetInvocationException dari metode terbukanya. Deskripsi berisi titik kegagalan, IStatefulServiceReplica.Open, jenis pengecualian TargetInvocationException, dan jejak tumpukan.

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 337cf1df-6cab-4825-99a9-7595090c0b1b -ReplicaOrInstanceId 131483509874784794

PartitionId           : 337cf1df-6cab-4825-99a9-7595090c0b1b
ReplicaId             : 131483509874784794
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='ReplicaOpenStatus', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : ReplicaOpenStatus
                        HealthState           : Warning
                        SequenceNumber        : 131483510001453159
                        SentAt                : 8/27/2017 11:43:20 PM
                        ReceivedAt            : 8/27/2017 11:43:21 PM
                        TTL                   : Infinite
                        Description           : Replica had multiple failures during open on _Node_0 API call: IStatefulServiceReplica.Open(); Error = System.Reflection.TargetInvocationException (-2146232828)
Exception has been thrown by the target of an invocation.
   at Microsoft.ServiceFabric.Replicator.RecoveryManager.d__31.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.LoggingReplicator.d__137.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.DynamicStateManager.d__109.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.TransactionalReplicator.d__79.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.StatefulServiceReplica.d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.d__0.MoveNext()

    For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/27/2017 11:43:21 PM, LastOk = 1/1/0001 12:00:00 AM

Contoh berikut menunjukkan replika yang terus mengalami crash selama penutupan:

C:>Get-ServiceFabricReplicaHealth -PartitionId dcafb6b7-9446-425c-8b90-b3fdf3859e64 -ReplicaOrInstanceId 131483565548493142

PartitionId           : dcafb6b7-9446-425c-8b90-b3fdf3859e64
ReplicaId             : 131483565548493142
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='ReplicaCloseStatus', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : ReplicaCloseStatus
                        HealthState           : Warning
                        SequenceNumber        : 131483565611258984
                        SentAt                : 8/28/2017 1:16:01 AM
                        ReceivedAt            : 8/28/2017 1:16:03 AM
                        TTL                   : Infinite
                        Description           : Replica had multiple failures during close on _Node_1. The application 
                        host has crashed.

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 1:16:03 AM, LastOk = 1/1/0001 12:00:00 AM

Konfigurasi ulang

Properti ini digunakan untuk menunjukkan saat replika yang melakukan konfigurasi ulang mendeteksi bahwa konfigurasi ulang terhenti atau macet. Laporan kesehatan ini mungkin tentang replika yang perannya saat ini adalah utama, kecuali dalam kasus konfigurasi ulang penukaran, saat laporan kesehatan in tentang replika yang diturunkan dari primer ke sekunder aktif.

Konfigurasi ulang dapat macet karena salah satu alasan berikut:

  • Tindakan pada replika lokal, replika yang sama dengan replika yang melakukan konfigurasi ulang, tidak selesai. Dalam hal ini, menyelidiki laporan kesehatan pada replika ini dari komponen lain, System.RAP atau System.RE, mungkin memberikan informasi tambahan.

  • Tindakan tak selesai pada replika jarak jauh. Replika yang tindakannya tertunda dicantumkan dalam laporan kesehatan. Penyelidikan lebih lanjut harus dilakukan pada laporan kesehatan untuk replika jarak jauh tersebut. Selain itu, masalah komunikasi kemungkinan juga terjadi antara simpul ini dan simpul jarak jauh.

Dalam kasus yang jarang terjadi, konfigurasi ulang dapat macet karena komunikasi atau masalah lain antara simpul ini dan layanan Manajer Failover.

  • SourceId: System.RA
  • Properti: Konfigurasi ulang.
  • Langkah selanjutnya: Selidiki replika lokal atau jarak jauh bergantung pada deskripsi laporan kesehatan.

Contoh berikut menunjukkan laporan kesehatan saat konfigurasi ulang macet di replika lokal. Dalam contoh ini, hal ini disebabkan karena layanan tidak mematuhi token pembatalan.

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 9a0cedee-464c-4603-abbc-1cf57c4454f3 -ReplicaOrInstanceId 131483600074836703

PartitionId           : 9a0cedee-464c-4603-abbc-1cf57c4454f3
ReplicaId             : 131483600074836703
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : Reconfiguration
                        HealthState           : Warning
                        SequenceNumber        : 131483600309264482
                        SentAt                : 8/28/2017 2:13:50 AM
                        ReceivedAt            : 8/28/2017 2:13:57 AM
                        TTL                   : Infinite
                        Description           : Reconfiguration is stuck. Waiting for response from the local replica

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 2:13:57 AM, LastOk = 1/1/0001 12:00:00 AM

Contoh berikut menunjukkan laporan kesehatan saat konfigurasi ulang tetap menunggu respons dari dua replika jarak jauh. Dalam contoh ini, ada tiga replika dalam partisi, termasuk primer saat ini.

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId  579d50c6-d670-4d25-af70-d706e4bc19a2 -ReplicaOrInstanceId 131483956274977415

PartitionId           : 579d50c6-d670-4d25-af70-d706e4bc19a2
ReplicaId             : 131483956274977415
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : Reconfiguration
                        HealthState           : Warning
                        SequenceNumber        : 131483960376212469
                        SentAt                : 8/28/2017 12:13:57 PM
                        ReceivedAt            : 8/28/2017 12:14:07 PM
                        TTL                   : Infinite
                        Description           : Reconfiguration is stuck. Waiting for response from 2 replicas

                        Pending Replicas: 
                        P/I Down 40 131483956244554282
                        S/S Down 20 131483956274972403

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 12:07:37 PM, LastOk = 1/1/0001 12:00:00 AM

Laporan kesehatan ini menunjukkan bahwa konfigurasi ulang tetap menunggu respons dari dua replika:

    P/I Down 40 131483956244554282
    S/S Down 20 131483956274972403

Untuk setiap replika, informasi berikut diberikan:

  • Peran konfigurasi sebelumnya
  • Peran konfigurasi saat ini
  • Status replika
  • ID Simpul
  • ID Replika

Untuk membatalkan pemblokiran konfigurasi ulang:

  • Replika yang turun harus dinaikkan.
  • Replika inbuild harus menyelesaikan build dan transisi ke siap.

Panggilan API layanan lambat

System.RAP dan System.Replicator melaporkan peringatan jika panggilan ke kode layanan pengguna membutuhkan waktu lebih lama dari waktu yang dikonfigurasi. Peringatan dibersihkan jika panggilan selesai.

  • SourceId: System.RAP atau System.Replicator
  • Properti: Nama API yang lambat. Deskripsi ini memberikan detail selengkapnya tentang waktu saat API tertunda.
  • Langkah selanjutnya: Selidiki mengapa panggilan membutuhkan waktu lebih lama dari yang diharapkan.

Contoh berikut menunjukkan peristiwa kesehatan dari System.RAP untuk layanan andal yang tidak mematuhi token pembatalan dalam RunAsync:

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 5f6060fb-096f-45e4-8c3d-c26444d8dd10 -ReplicaOrInstanceId 131483966141404693

PartitionId           : 5f6060fb-096f-45e4-8c3d-c26444d8dd10
ReplicaId             : 131483966141404693
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.

HealthEvents          :                         
                        SourceId              : System.RAP
                        Property              : IStatefulServiceReplica.ChangeRole(S)Duration
                        HealthState           : Warning
                        SequenceNumber        : 131483966663476570
                        SentAt                : 8/28/2017 12:24:26 PM
                        ReceivedAt            : 8/28/2017 12:24:56 PM
                        TTL                   : Infinite
                        Description           : The api IStatefulServiceReplica.ChangeRole(S) on _Node_1 is stuck. Start Time (UTC): 2017-08-28 12:23:56.347.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 12:24:56 PM, LastOk = 1/1/0001 12:00:00 AM

Properti dan teks menunjukkan API yang macet. Langkah selanjutnya yang harus diambil untuk API yang macet berbeda. API apa pun di IStatefulServiceReplica atau IStatelessServiceInstance biasanya berupa bug dalam kode layanan. Bagian berikut ini menjelaskan bagaimana hal ini diterjemahkan ke model Reliable Services:

  • IStatefulServiceReplica.Open: Peringatan ini menunjukkan bahwa panggilan ke CreateServiceInstanceListeners, ICommunicationListener.OpenAsync, atau jika diganti, OnOpenAsync macet.

  • IStatefulServiceReplica.Close dan IStatefulServiceReplica.Abort: Kasus yang paling umum adalah layanan tidak mematuhi token pembatalan yang diteruskan ke RunAsync. Tidak menutup kemungkinan juga bahwa ICommunicationListener.CloseAsync, atau jika diganti, OnCloseAsync akan macet.

  • IStatefulServiceReplica.ChangeRole(S) dan IStatefulServiceReplica.ChangeRole(N) : Kasus yang paling umum adalah layanan tidak mematuhi token pembatalan yang diteruskan ke RunAsync. Dalam skenario ini, solusi terbaiknya adalah memulai ulang replika.

  • IStatefulServiceReplica.ChangeRole(P) : Kasus yang paling umum adalah bahwa layanan belum menampilkan tugas dari RunAsync.

Panggilan API lain yang bisa macet ada di antarmuka IReplicator. Contohnya:

  • IReplicator.CatchupReplicaSet: Peringatan ini menunjukkan salah satu dari dua hal. Ada replika yang tidak mencukupi. Untuk mengetahui apakah ini masalahnya, lihat status replika dari replika dalam partisi atau laporan kesehatan System.FM untuk konfigurasi ulang yang macet. Atau replika tidak mengenali operasi. Cmdlet PowerShell Get-ServiceFabricDeployedReplicaDetail dapat digunakan untuk menentukan kemajuan semua replika. Masalahnya terletak pada replika nilai LastAppliedReplicationSequenceNumber-nya berada di belakang nilai CommittedSequenceNumber primer.

  • IReplicator.BuildReplica(<Remote ReplicaId>): Peringatan ini mengindikasikan masalah dalam proses build. Untuk informasi selengkapnya, lihat Siklus hidup replika. Mungkin karena kesalahan konfigurasi alamat replikator. Untuk informasi selengkapnya, lihat Mengonfigurasi Reliable Service yang berstatus dan Menentukan sumber daya dalam manifes layanan. Ini mungkin juga menjadi masalah pada simpul jarak jauh.

Laporan kesehatan sistem replikator

Antrean replikasi penuh:System.Replicator melaporkan sebagai peringatan jika antrean replikasi penuh. Pada primer, antrean replikasi biasanya menjadi penuh karena satu atau beberapa replika sekunder lambat mengenali operasi. Pada sekunder, antrean replikasi biasanya terjadi ketika layanan lambat untuk menerapkan operasi. Peringatan dibersihkan saat antrean tidak penuh lagi.

  • SourceId: System.Replicator
  • Properti: PrimaryReplicationQueueStatus atau SecondaryReplicationQueueStatus, bergantung pada peran replika.
  • Langkah berikutnya: Jika laporan berada di primer, periksa koneksi antar-simpul dalam kluster. Jika semua koneksi baik-baik saja, mungkin ada setidaknya satu sekunder lambat dengan latensi disk tinggi untuk menerapkan operasi. Jika laporan berada di sekunder, periksa penggunaan dan performa disk pada simpul terlebih dahulu. Kemudian, periksa koneksi keluar dari simpul lambat ke primer.

RemoteReplicatorConnectionStatus:System.Replicator pada replika primer melaporkan peringatan saat koneksi ke replikator sekunder (jarak jauh) tidak sehat. Alamat replikator jarak jauh ditampilkan dalam pesan laporan, yang membuatnya lebih mudah untuk mendeteksi apakah konfigurasi yang salah telah diloloskan atau apakah ada masalah jaringan antara replikator.

  • SourceId: System.Replicator
  • Properti: RemoteReplicatorConnectionStatus.
  • Langkah berikutnya: Periksa pesan kesalahan dan pastikan alamat replikator jarak jauh dikonfigurasi dengan benar. Misalnya, jika replikator jarak jauh dibuka dengan alamat listen "localhost", replikator ini tidak dapat dijangkau dari luar. Jika alamat terlihat benar, periksa koneksi antara simpul utama dan alamat jarak jauh untuk menemukan potensi masalah jaringan.

Antrean replikasi penuh

System.Replicator melaporkan peringatan saat antrean replikasi penuh. Pada primer, antrean replikasi biasanya menjadi penuh karena satu atau beberapa replika sekunder lambat mengenali operasi. Pada sekunder, antrean replikasi biasanya terjadi ketika layanan lambat untuk menerapkan operasi. Peringatan dibersihkan saat antrean tidak penuh lagi.

  • SourceId: System.Replicator
  • Properti: PrimaryReplicationQueueStatus atau SecondaryReplicationQueueStatus, bergantung pada peran replika.

Operasi Penamaan Lambat

System.NamingService melaporkan kesehatan pada replika primer saat ketika operasi Penamaan membutuhkan waktu lebih lama dari yang dapat diterima. Contoh operasi Penamaan adalah CreateServiceAsync atau DeleteServiceAsync. Metode lain dapat ditemukan di bagian FabricClient. Misalnya, metode dapat ditemukan di bagian metode manajemen layanan atau metode pengelolaan properti.

Catatan

Layanan Penamaan menyelesaikan nama layanan ke lokasi di dalam kluster. Pengguna dapat menggunakannya untuk mengelola nama dan properti layanan. Ini adalah layanan tetap yang dipartisi Service Fabric. Salah satu partisi mewakili Pemilik Otoritas, yang berisi metadata tentang semua nama dan layanan Service Fabric. Nama Service Fabric dipetakan ke partisi yang berbeda, yang disebut partisi Pemilik Nama, sehingga layanan ini dapat diperluas. Baca selengkapnya tentang Layanan Penamaan.

Ketika operasi Penamaan membutuhkan waktu lebih lama dari yang diharapkan, operasi ditandai dengan laporan peringatan pada replika utama partisi layanan Penamaan yang melayani operasi. Jika operasi berhasil diselesaikan, peringatan akan dibersihkan. Jika operasi selesai dengan kesalahan, laporan kesehatan akan menyertakan detail tentang kesalahan.

  • SourceId: System.NamingService
  • Properti: Dimulai dengan awalan "Duration_ " dan mengidentifikasi operasi yang lambat dan nama Service Fabric tempat operasi diterapkan. Misalnya, jika layanan buat dengan nama fabric:/MyApp/MyService memakan waktu terlalu lama, propertinya adalah Duration_AOCreateService.fabric:/MyApp/MyService. "AO" mengarah ke peran partisi Penamaan untuk nama dan operasi ini.
  • Langkah selanjutnya: Periksa untuk melihat mengapa operasi Penamaan gagal. Setiap operasi dapat memiliki akar penyebab yang berbeda. Misalnya, layanan hapus mungkin macet. Layanan mungkin macet karena host aplikasi terus mengalami crash pada simpul karena bug pengguna dalam kode layanan.

Contoh berikut menunjukkan operasi buat layanan. Operasi ini membutuhkan waktu lebih lama dari durasi yang dikonfigurasi. "AO" mencoba dan mengirim pekerjaan ke "NO." "NO" menyelesaikan operasi terakhir dengan TIMEOUT. Dalam hal ini, replika yang sama adalah yang utama untuk peran "AO" dan "NO".

PartitionId           : 00000000-0000-0000-0000-000000001000
ReplicaId             : 131064359253133577
AggregatedHealthState : Warning
UnhealthyEvaluations  :
                        Unhealthy event: SourceId='System.NamingService', Property='Duration_AOCreateService.fabric:/MyApp/MyService', HealthState='Warning', ConsiderWarningAsError=false.

HealthEvents          :
                        SourceId              : System.RA
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 131064359308715535
                        SentAt                : 4/29/2016 8:38:50 PM
                        ReceivedAt            : 4/29/2016 8:39:08 PM
                        TTL                   : Infinite
                        Description           : Replica has been created.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 4/29/2016 8:39:08 PM, LastWarning = 1/1/0001 12:00:00 AM

                        SourceId              : System.NamingService
                        Property              : Duration_AOCreateService.fabric:/MyApp/MyService
                        HealthState           : Warning
                        SequenceNumber        : 131064359526778775
                        SentAt                : 4/29/2016 8:39:12 PM
                        ReceivedAt            : 4/29/2016 8:39:38 PM
                        TTL                   : 00:05:00
                        Description           : The AOCreateService started at 2016-04-29 20:39:08.677 is taking longer than 30.000.
                        RemoveWhenExpired     : True
                        IsExpired             : False
                        Transitions           : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM

                        SourceId              : System.NamingService
                        Property              : Duration_NOCreateService.fabric:/MyApp/MyService
                        HealthState           : Warning
                        SequenceNumber        : 131064360657607311
                        SentAt                : 4/29/2016 8:41:05 PM
                        ReceivedAt            : 4/29/2016 8:41:08 PM
                        TTL                   : 00:00:15
                        Description           : The NOCreateService started at 2016-04-29 20:39:08.689 completed with FABRIC_E_TIMEOUT in more than 30.000.
                        RemoveWhenExpired     : True
                        IsExpired             : False
                        Transitions           : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM

Laporan kesehatan sistem DeployedApplication

System.Hosting adalah otoritas di entitas yang disebarkan.

Aktivasi

System.Hosting melaporkan OK saat aplikasi telah berhasil diaktifkan pada simpul. Jika tidak, kesalahan akan dilaporkan.

  • SourceId: System.Hosting
  • Properti: Aktivasi, termasuk versi peluncuran.
  • Langkah selanjutnya: Jika aplikasi tidak sehat, selidiki mengapa aktivasi gagal.

Contoh berikut menunjukkan aktivasi yang berhasil:

PS C:\> Get-ServiceFabricDeployedApplicationHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ExcludeHealthStatistics

ApplicationName                    : fabric:/WordCount
NodeName                           : _Node_1
AggregatedHealthState              : Ok
DeployedServicePackageHealthStates : 
                                     ServiceManifestName   : WordCountServicePkg
                                     ServicePackageActivationId : 
                                     NodeName              : _Node_1
                                     AggregatedHealthState : Ok

HealthEvents                       : 
                                     SourceId              : System.Hosting
                                     Property              : Activation
                                     HealthState           : Ok
                                     SequenceNumber        : 131445249083836329
                                     SentAt                : 7/14/2017 4:55:08 PM
                                     ReceivedAt            : 7/14/2017 4:55:14 PM
                                     TTL                   : Infinite
                                     Description           : The application was activated successfully.
                                     RemoveWhenExpired     : False
                                     IsExpired             : False
                                     Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

Unduh

System.Hosting melaporkan kesalahan jika pengunduhan paket aplikasi gagal.

  • SourceId: System.Hosting
  • Properti: Unduh, termasuk versi peluncuran.
  • Langkah selanjutnya: Selidiki mengapa pengunduhan gagal pada simpul.

Laporan kesehatan sistem DeployedServicePackage

System.Hosting adalah otoritas di entitas yang disebarkan.

Aktivasi paket layanan

System.Hosting melaporkan OK jika aktivasi paket layanan pada simpul berhasil. Jika tidak, kesalahan akan dilaporkan.

  • SourceId: System.Hosting
  • Properti: Aktivasi.
  • Langkah selanjutnya: Selidiki mengapa aktivasi gagal.

Aktivasi paket kode

System.Hosting melaporkan OK untuk setiap paket kode jika aktivasi berhasil. Jika aktivasi gagal, peringatan sebagai dikonfigurasi akan dilaporkan. Jika CodePackage gagal diaktifkan atau diakhiri dengan kesalahan yang lebih besar dari CodePackageHealthErrorThreshold yang dikonfigurasi, hosting akan melaporkan kesalahan. Jika paket layanan berisi beberapa paket kode, laporan aktivasi akan dibuat untuk masing-masing paket.

  • SourceId: System.Hosting
  • Properti: Menggunakan awalan CodePackageActivation dan berisi nama paket kode dan titik entri sebagai CodePackageActivation:CodePackageName:SetupEntryPoint/EntryPoint. Contoh, CodePackageActivation:Code:SetupEntryPoint.

Pendaftaran jenis layanan

System.Hosting melaporkan OK jika jenis layanan telah berhasil didaftarkan. System.Hostng melaporkan kesalahan jika pendaftaran tidak dilakukan tepat waktu, seperti yang dikonfigurasi menggunakan ServiceTypeRegistrationTimeout. Jika runtime ditutup, jenis layanan tidak didaftarkan dari simpul dan hosting melaporkan peringatan.

  • SourceId: System.Hosting
  • Properti: Menggunakan awalan ServiceTypeRegistration dan berisi nama jenis layanan. Contoh, ServiceTypeRegistration:FileStoreServiceType.

Contoh berikut menunjukkan paket layanan sehat yang disebarkan:

PS C:\> Get-ServiceFabricDeployedServicePackageHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ServiceManifestName WordCountServicePkg

ApplicationName            : fabric:/WordCount
ServiceManifestName        : WordCountServicePkg
ServicePackageActivationId : 
NodeName                   : _Node_1
AggregatedHealthState      : Ok
HealthEvents               : 
                             SourceId              : System.Hosting
                             Property              : Activation
                             HealthState           : Ok
                             SequenceNumber        : 131445249084026346
                             SentAt                : 7/14/2017 4:55:08 PM
                             ReceivedAt            : 7/14/2017 4:55:14 PM
                             TTL                   : Infinite
                             Description           : The ServicePackage was activated successfully.
                             RemoveWhenExpired     : False
                             IsExpired             : False
                             Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

                             SourceId              : System.Hosting
                             Property              : CodePackageActivation:Code:EntryPoint
                             HealthState           : Ok
                             SequenceNumber        : 131445249084306362
                             SentAt                : 7/14/2017 4:55:08 PM
                             ReceivedAt            : 7/14/2017 4:55:14 PM
                             TTL                   : Infinite
                             Description           : The CodePackage was activated successfully.
                             RemoveWhenExpired     : False
                             IsExpired             : False
                             Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

                             SourceId              : System.Hosting
                             Property              : ServiceTypeRegistration:WordCountServiceType
                             HealthState           : Ok
                             SequenceNumber        : 131445249088096842
                             SentAt                : 7/14/2017 4:55:08 PM
                             ReceivedAt            : 7/14/2017 4:55:14 PM
                             TTL                   : Infinite
                             Description           : The ServiceType was registered successfully.
                             RemoveWhenExpired     : False
                             IsExpired             : False
                             Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

Unduh

System.Hosting melaporkan kesalahan jika pengunduhan paket layanan gagal.

  • SourceId: System.Hosting
  • Properti: Unduh, termasuk versi peluncuran.
  • Langkah selanjutnya: Selidiki mengapa pengunduhan gagal pada simpul.

Validasi peningkatan

System.Hosting melaporkan kesalahan jika validasi selama peningkatan gagal atau jika peningkatan gagal pada simpul.

  • SourceId: System.Hosting
  • Properti: Menggunakan awalan FabricUpgradeValidation dan berisi versi peningkatan.
  • Deskripsi: Mengarah ke kesalahan yang dialami.

Kapasitas simpul yang tidak ditentukan untuk metrik tata kelola sumber daya

System.Hosting melaporkan peringatan jika kapasitas simpul tidak ditentukan dalam manifes kluster dan konfigurasi untuk deteksi otomatis dinonaktifkan. Service Fabric menampilkan peringatan kesehatan setiap kali paket layanan yang menggunakan tata kelola sumber daya didaftarkan pada simpul tertentu.

  • SourceId: System.Hosting
  • Properti: ResourceGovernance.
  • Langkah selanjutnya: Cara yang lebih disukai untuk mengatasi masalah ini adalah dengan mengubah manifes kluster untuk mengaktifkan deteksi otomatis sumber daya yang tersedia. Cara lain adalah dengan memperbarui manifes kluster dengan kapasitas simpul yang ditentukan dengan benar untuk metrik ini.

Langkah berikutnya