Aracılığıyla paylaş


sfctl chaos

Kaos testi hizmetini başlatın, durdurun ve rapor edin.

Alt Gruplar

Alttakım Açıklama
schedule Kaos programını ayarla.

Komutlar

Komut Açıklama
etkinlikler Devam belirtecini veya zaman aralığını temel alarak Chaos olaylarının sonraki segmentini alır.
get Kaos'un durumunu alın.
start Kümede Kaos'a başlar.
durmak Kümede çalışıyorsa Chaos'ı durdurur ve Chaos Zamanlamasını durdurulmuş duruma getirir.

sfctl chaos events

Devam belirtecini veya zaman aralığını temel alarak Chaos olaylarının sonraki segmentini alır.

Chaos olaylarının bir sonraki segmentini almak için ContinuationToken değerini belirtebilirsiniz. Chaos olaylarının yeni bir segmentinin başlangıcını almak için StartTimeUtc ve EndTimeUtc aracılığıyla zaman aralığını belirtebilirsiniz. Aynı çağrıda hem ContinuationToken hem de zaman aralığını belirtemezsiniz. 100'den fazla Chaos olayı olduğunda, Bir segmentin 100'den fazla Chaos olayı içermediği ve bu API'ye devamlılık belirteci ile bir çağrı yaptığınız sonraki segmenti almak için Chaos olayları birden çok segmentte döndürülür.

Bağımsız değişkenler

Bağımsız değişken Açıklama
--continuation-token Devam belirteci parametresi, sonraki sonuç kümesini almak için kullanılır. Sistemden alınan sonuçlar tek bir yanıta sığmadığında API'nin yanıtına boş olmayan bir değer içeren bir devamlılık belirteci eklenir. Bu değer bir sonraki API çağrısına geçirildiğinde, API bir sonraki sonuç kümesini döndürür. Başka sonuç yoksa, devamlılık belirteci bir değer içermez. Bu parametrenin değeri URL kodlanmış olmamalıdır.
--end-time-utc Bir Chaos raporunun oluşturulacağı zaman aralığının bitiş saatini temsil eden Windows dosya zamanı. Ayrıntılar için DateTime.ToFileTimeUtc Yöntemi'ne başvurun.
--max-results Sayfalanan sorguların bir parçası olarak döndürülecek en fazla sonuç sayısı. Bu parametre, döndürülen sonuç sayısı üzerindeki üst sınırı tanımlar. Döndürülen sonuçlar, yapılandırmada tanımlanan maksimum ileti boyutu kısıtlamalarına göre iletiye sığmazsa belirtilen en yüksek sonuçlardan daha az olabilir. Bu parametre sıfırsa veya belirtilmemişse, disk belleğine alınan sorgu dönüş iletisine sığabilecek kadar çok sonuç içerir.
--start-time-utc Bir Chaos raporunun oluşturulacağı zaman aralığının başlangıç saatini temsil eden Windows dosya zamanı. Ayrıntılar için DateTime.ToFileTimeUtc Yöntemi'ne başvurun.
--timeout -t İşlemi saniyeler içinde gerçekleştirmek için sunucu zaman aşımı. Bu zaman aşımı, istemcinin istenen işlemin tamamlanmasını beklemeye istekli olduğu süreyi belirtir. Bu parametre için varsayılan değer 60 saniyedir. Varsayılan: 60.

Genel Bağımsız Değişkenler

Bağımsız değişken Açıklama
--hata ayıklama Tüm hata ayıklama günlüklerini göstermek için günlük ayrıntı düzeyini artırın.
--help -h Bu yardım iletisini göster ve çık.
--output -o Çıkış biçimi. İzin verilen değerler: json, jsonc, table, tsv. Varsayılan: json.
--sorgu JMESPath sorgu dizesi. Daha fazla bilgi ve örnek için bkz http://jmespath.org/ .
--Ayrıntılı Günlük ayrıntı düzeyini artırın. Tam hata ayıklama günlükleri için --debug komutunu kullanın.

sfctl chaos get

Kaos'un durumunu alın.

Chaos'un çalışıp çalışmadığını, Chaos çalıştırmak için kullanılan Chaos parametrelerini ve Chaos Zamanlamasının durumunu gösteren Chaos durumunu alın.

Bağımsız değişkenler

Bağımsız değişken Açıklama
--timeout -t İşlemi saniyeler içinde gerçekleştirmek için sunucu zaman aşımı. Bu zaman aşımı, istemcinin istenen işlemin tamamlanmasını beklemeye istekli olduğu süreyi belirtir. Bu parametre için varsayılan değer 60 saniyedir. Varsayılan: 60.

Genel Bağımsız Değişkenler

Bağımsız değişken Açıklama
--hata ayıklama Tüm hata ayıklama günlüklerini göstermek için günlük ayrıntı düzeyini artırın.
--help -h Bu yardım iletisini göster ve çık.
--output -o Çıkış biçimi. İzin verilen değerler: json, jsonc, table, tsv. Varsayılan: json.
--sorgu JMESPath sorgu dizesi. Daha fazla bilgi ve örnek için bkz http://jmespath.org/ .
--Ayrıntılı Günlük ayrıntı düzeyini artırın. Tam hata ayıklama günlükleri için --debug komutunu kullanın.

sfctl chaos start

Kümede Kaos'a başlar.

Chaos kümede zaten çalışmıyorsa, Chaos parametrelerinde geçirilen ile Chaos'ı başlatır. Bu çağrı yapıldığında Chaos zaten çalışıyorsa, çağrı FABRIC_E_CHAOS_ALREADY_RUNNING hata koduyla başarısız olur. Daha fazla ayrıntı için Service Fabric kümelerinde denetimli Kaosu başlatma makalesine bakın.

Bağımsız değişkenler

Bağımsız değişken Açıklama
--app-type-health-policy-map Belirli uygulama türleri için en yüksek iyi durumda olmayan uygulama yüzdesine sahip JSON kodlanmış sözlük dizisi (anahtar /değer). Her sözlük girdisi, belirtilen uygulama türünün uygulamalarını değerlendirmek için kullanılan MaxPercentUnhealthyApplications yüzdesini temsil eden değer için bir tamsayı ve uygulama türü adını bir anahtar olarak belirtir.

Belirli uygulama türleri için en yüksek iyi durumda olmayan uygulama yüzdesine sahip bir harita tanımlar. Uygulama türü sistem durumu ilkesi eşlemesi, tek tek uygulama türlerini açıklamak için küme durumu değerlendirmesi sırasında kullanılabilir. Eşlemeye dahil edilen uygulama türleri, küme sistem durumu ilkesinde tanımlanan genel MaxPercentUnhealthyApplications ile değil, haritada belirtilen yüzdeye göre değerlendirilir. Haritada belirtilen uygulama türlerinin uygulamaları, genel uygulama havuzuna göre sayılmaz. Örneğin, bir türdeki bazı uygulamalar kritikse, küme yöneticisi bu uygulama türü için eşlemeye bir girdi ekleyebilir ve %0 değeri atayabilir (hatalara tolerans gösterme). Diğer tüm uygulamalar, binlerce uygulama örneğinden bazı hataları tolere etmek için MaxPercentUnhealthyApplications %20 olarak ayarlanmış şekilde değerlendirilebilir. Uygulama türü sistem durumu ilkesi eşlemesi yalnızca küme bildirimi HealthManager/EnableApplicationTypeHealthEvaluation yapılandırma girdisini kullanarak uygulama türü sistem durumu değerlendirmesini etkinleştirirse kullanılır.

Örnek JSON kodlanmış dizesi: [{"key": "fabric:/Voting", "value": "0"}]
--chaos-target-filter İki dize türü anahtarıyla JSON ile kodlanmış sözlük. İki anahtar NodeTypeInclusionList ve ApplicationInclusionList'tir. Bu anahtarların her ikisi için de değerler dize listesidir. chaos_target_filter, yalnızca belirli düğüm türlerinin hatalı olması veya yalnızca belirli uygulamaların hatalı olması gibi hedeflenen Chaos hataları için tüm filtreleri tanımlar.

chaos_target_filter kullanılmazsa, Chaos tüm küme varlıklarını hataya neden olur. chaos_target_filter kullanılırsa, Chaos yalnızca chaos_target_filter belirtimini karşılayan varlıkları hataya neden olur. NodeTypeInclusionList ve ApplicationInclusionList yalnızca birleşim semantiğine izin verir. NodeTypeInclusionList ve ApplicationInclusionList'in kesişimini belirtmek mümkün değildir. Örneğin, "bu uygulama yalnızca bu düğüm türünde olduğunda hata" belirtilmesi mümkün değildir. Bir varlık NodeTypeInclusionList veya ApplicationInclusionList'e eklendikten sonra, bu varlık ChaosTargetFilter kullanılarak dışlanamaz. ApplicationInclusionList'te applicationX görünmese bile, nodeTypeInclusionList'te bulunan nodeTypeY düğümünde olduğundan bazı Chaos yinelemelerinde applicationX hatalı olabilir. Hem NodeTypeInclusionList hem de ApplicationInclusionList boşsa, bir ArgumentException oluşturulur. Bu düğüm türlerinin düğümleri için tüm hata türleri (yeniden başlatma düğümü, kod paketini yeniden başlatma, çoğaltmayı kaldırma, çoğaltmayı yeniden başlatma, birincil öğeyi taşıma ve ikincil taşıma) etkinleştirilir. NodeTypeInclusionList içinde bir düğüm türü (NodeTypeX gibi) görünmüyorsa NodeTypeX düğümleri için düğüm düzeyinde hatalar (NodeRestart gibi) hiçbir zaman etkinleştirilmez, ancak ApplicationInclusionList'teki bir uygulama NodeTypeX düğümünde bulunuyorsa nodeTypeX için kod paketi ve çoğaltma hataları hala etkinleştirilebilir. Bu listeye en fazla 100 düğüm türü adı eklenebilir; bu sayıyı artırmak için MaxNumberOfNodeTypesInChaosEntityFilter yapılandırması için bir yapılandırma yükseltmesi gerekir. Bu uygulamaların hizmetlerine ait tüm çoğaltmalar, Chaos tarafından çoğaltma hatalarına (çoğaltmayı yeniden başlatma, çoğaltmayı kaldırma, birincil taşıma ve ikincil taşıma) uygundur. Chaos yalnızca kod paketi yalnızca bu uygulamaların çoğaltmalarını barındırıyorsa kod paketini yeniden başlatabilir. Bir uygulama bu listede görünmüyorsa, uygulama NodeTypeInclusionList içinde yer alan bir düğüm türünün düğümünde sona eriyorsa bazı Chaos yinelemelerinde hataya neden olabilir. Ancak applicationX, yerleştirme kısıtlamaları aracılığıyla nodeTypeY'ye bağlıysa ve applicationX ApplicationInclusionList içinde yoksa ve nodeTypeY NodeTypeInclusionList içinde yoksa, applicationX hiçbir zaman hataya neden olmaz. Bu listeye en fazla 1000 uygulama adı eklenebilir. Bu sayıyı artırmak için MaxNumberOfApplicationsInChaosEntityFilter yapılandırması için bir yapılandırma yükseltmesi gerekir.
--Bağlam JSON kodlanmış eşlemesi (dize, dize) türü anahtar-değer çiftleri. Harita, Chaos çalıştırması hakkındaki bilgileri kaydetmek için kullanılabilir. 100'den fazla çift olamaz ve her dize (anahtar veya değer) en fazla 4095 karakter uzunluğunda olabilir. Bu harita, isteğe bağlı olarak belirli bir çalıştırmayla ilgili bağlamı depolamak için Chaos çalıştırmasının başlatıcısı tarafından ayarlanır.
--disable-move-replica-faults Birincil taşımayı ve ikincil hataları taşımayı devre dışı bırakır.
--max-cluster-stabilization Tüm küme varlıklarının kararlı ve iyi durumda olmasını bekleme süresi üst sınırı. Varsayılan: 60.

Kaos yinelemelerde yürütülür ve her yinelemenin başında küme varlıklarının durumunu doğrular. Bir küme varlığı MaxClusterStabilizationTimeoutInSeconds içinde kararlı ve sağlıklı değilse doğrulama sırasında Chaos doğrulama başarısız olayı oluşturur.
--max-concurrent-faults Yineleme başına tetiklenmiş en fazla eşzamanlı hata sayısı. Kaos yinelemelerde yürütülür ve iki ardışık yineleme bir doğrulama aşamasıyla ayrılır. Eşzamanlılık ne kadar yüksek olursa, hataların eklenmesi o kadar agresif olur ve hataları ortaya çıkarmak için daha karmaşık durum serisine neden olur. Öneri, 2 veya 3 değeriyle başlamak ve yukarı hareket ederken dikkatli olmaktır. Varsayılan: 1.
--max-percent-unhealthy-apps Chaos sırasında küme durumunu değerlendirirken, hata raporlamadan önce iyi durumda olmayan uygulamaların izin verilen en yüksek yüzdesi.

Hata raporlamadan önce, iyi durumda olmayan uygulamaların izin verilen en yüksek yüzdesi. Örneğin, uygulamaların %10'unun iyi durumda olmamasına izin vermek için bu değer 10 olur. Yüzde, küme hata olarak değerlendirilmeden önce iyi durumda olmayan uygulamaların en yüksek tolere edilen yüzdesini temsil eder. Yüzdeye uyulup en az bir iyi durumda olmayan uygulama varsa sistem durumu Uyarı olarak değerlendirilir. Bu, ApplicationTypeHealthPolicyMap'e dahil edilen uygulama türlerinin uygulamaları hariç olmak üzere, iyi durumda olmayan uygulamaların sayısı kümedeki uygulama örneklerinin toplam sayısına bölünerek hesaplanır. Hesaplama, az sayıda uygulamada bir hatayı tolere etmek için yukarı yuvarlar. Varsayılan yüzde sıfırdır.
--max-percent-unhealthy-node Chaos sırasında küme durumunu değerlendirirken, hata raporlamadan önce iyi durumda olmayan düğümlerin izin verilen en yüksek yüzdesi.

Hata raporlamadan önce iyi durumda olmayan düğümlerin izin verilen en yüksek yüzdesi. Örneğin, düğümlerin %10'unun iyi durumda olmamasına izin vermek için bu değer 10 olur. Yüzde, küme hata olarak değerlendirilmeden önce iyi durumda olmayan düğümlerin en yüksek tolere edilen yüzdesini temsil eder. Yüzdeye uyulup en az bir iyi durumda olmayan düğüm varsa sistem durumu Uyarı olarak değerlendirilir. Yüzde, iyi durumda olmayan düğüm sayısı kümedeki toplam düğüm sayısına bölünerek hesaplanır. Hesaplama, az sayıda düğümde bir hatayı tolere etmek için yukarı yuvarlar. Varsayılan yüzde sıfırdır. Büyük kümelerde, bazı düğümler onarım için her zaman devre dışı kalır, bu nedenle bu yüzde bunu tolere edecek şekilde yapılandırılmalıdır.
--çalışma zamanı Chaos'un otomatik olarak durdurulmadan önce çalıştırılacağı toplam süre (saniye olarak). İzin verilen en büyük değer 4.294.967.295 'tir (System.UInt32.MaxValue). Varsayılan: 4294967295.
--timeout -t Varsayılan: 60.
--wait-time-between-faults Tek bir yineleme içinde ardışık hatalar arasındaki bekleme süresi (saniye cinsinden). Varsayılan: 20.

Değer ne kadar büyükse, hatalar arasındaki çakışma o kadar düşük olur ve kümenin geçtiği durum geçişleri dizisi o kadar basit olur. Öneri, 1 ile 5 arasında bir değerle başlayıp yukarı hareket ederken dikkatli olmanızdır.
--wait-time-between-yinelemeleri Kaos'un iki ardışık yinelemesi arasında zaman ayrımı (saniye cinsinden). Değer ne kadar büyükse hata ekleme oranı da o kadar düşük. Varsayılan: 30.
--error olarak uyarı Uyarıların hatalarla aynı önem derecesine sahip olup olmadığını gösterir.

Genel Bağımsız Değişkenler

Bağımsız değişken Açıklama
--hata ayıklama Tüm hata ayıklama günlüklerini göstermek için günlük ayrıntı düzeyini artırın.
--help -h Bu yardım iletisini göster ve çık.
--output -o Çıkış biçimi. İzin verilen değerler: json, jsonc, table, tsv. Varsayılan: json.
--sorgu JMESPath sorgu dizesi. Daha fazla bilgi ve örnek için bkz http://jmespath.org/ .
--Ayrıntılı Günlük ayrıntı düzeyini artırın. Tam hata ayıklama günlükleri için --debug komutunu kullanın.

sfctl chaos stop

Kümede çalışıyorsa Chaos'ı durdurur ve Chaos Zamanlamasını durdurulmuş duruma getirir.

Chaos'un yeni hataları yürütmesini durdurur. Uçuş içi hatalar tamamlanana kadar yürütülmeye devam eder. Geçerli Kaos Zamanlaması durdurulmuş duruma getiriliyor. Bir zamanlama durdurulduktan sonra durdurulmuş durumda kalır ve Chaos Schedule yeni Chaos çalıştırmalarına kullanılmaz. Zamanlamaya devam etmek için yeni bir Chaos Schedule ayarlanmalıdır.

Bağımsız değişkenler

Bağımsız değişken Açıklama
--timeout -t İşlemi saniyeler içinde gerçekleştirmek için sunucu zaman aşımı. Bu zaman aşımı, istemcinin istenen işlemin tamamlanmasını beklemeye istekli olduğu süreyi belirtir. Bu parametre için varsayılan değer 60 saniyedir. Varsayılan: 60.

Genel Bağımsız Değişkenler

Bağımsız değişken Açıklama
--hata ayıklama Tüm hata ayıklama günlüklerini göstermek için günlük ayrıntı düzeyini artırın.
--help -h Bu yardım iletisini göster ve çık.
--output -o Çıkış biçimi. İzin verilen değerler: json, jsonc, table, tsv. Varsayılan: json.
--sorgu JMESPath sorgu dizesi. Daha fazla bilgi ve örnek için bkz http://jmespath.org/ .
--Ayrıntılı Günlük ayrıntı düzeyini artırın. Tam hata ayıklama günlükleri için --debug komutunu kullanın.

Sonraki adımlar