注
Service Fabric バージョン 6.4 以降。 EventStore API は、Azure で実行されている Windows クラスターでのみ使用できます。 この機能を Linux とスタンドアロン クラスターに移植する作業を行っています。
概要
バージョン 6.2 で導入された EventStore サービスは、Service Fabric の監視オプションです。 EventStore では、任意の時点でのクラスターまたはワークロードの状態を理解する手段が提供されます。 EventStore は、クラスターからのイベントを保持するステートフルな Service Fabric サービスです。 イベントは、Service Fabric Explorer や REST API を介して公開されます。 EventStore では、クラスターに対してクエリが直接行われて、クラスター内の任意のエンティティについて診断データが取得されます。EventStore は、以下に役立てるために使用します。
- 開発またはテストにおける問題の診断や、監視パイプラインを使用できる場所の診断
- クラスターで実行している管理アクションが正しく処理されていることを確認する
- Service Fabric が特定のエンティティと対話している方法の "スナップショット" の取得
[ノード] ペインの [イベント] タブに NodeDown イベントなどのいくつかのイベントが表示さているスクリーンショット。
EventStore で使用可能なイベントの完全な一覧については、「 Service Fabric イベント」を参照してください。
注
Service Fabric バージョン 6.4 以降。 EventStore API と UX は、Azure Windows クラスターで一般提供されています。 この機能を Linux とスタンドアロン クラスターに移植する作業を行っています。
EventStore サービスは、クラスター内のエンティティとエンティティの種類ごとに使用できるイベントに対してクエリを実行できます。 つまり、次のレベルのイベントを照会できます。
- クラスター: クラスター自体に固有のイベント (クラスターのアップグレードなど)
- ノード: すべてのノード レベルのイベント
- ノード: 1 つのノードに固有のイベント。次で識別されます。
nodeName - アプリケーション: すべてのアプリケーション レベルのイベント
- アプリケーション: によって識別される 1 つのアプリケーションに固有のイベント
applicationId - サービス: クラスター内のすべてのサービスからのイベント
- サービス: によって識別される特定のサービスからのイベント
serviceId - パーティション: すべてのパーティションからのイベント
- パーティション: によって識別される特定のパーティションからのイベント
partitionId - パーティション レプリカ: 特定のパーティション内のすべてのレプリカ/インスタンスからのイベント
partitionId - パーティション レプリカ:
replicaIdによって識別される特定のレプリカ/インスタンスからのイベントpartitionId
API の詳細については、 EventStore API リファレンスを参照してください。
EventStore サービスには、クラスター内のイベントを関連付ける機能もあります。 互いに影響を与えた可能性のあるさまざまなエンティティから同時に書き込まれたイベントを調べることで、EventStore サービスはこれらのイベントをリンクして、クラスター内のアクティビティの原因を特定するのに役立ちます。 たとえば、アプリケーションの 1 つが原因で変更されずに異常になった場合、EventStore はプラットフォームによって公開されている他のイベントも調べて、これを Error または Warning イベントと関連付けることができます。 これは、障害検出の高速化と根本原因の分析に役立ちます。
クラスターで EventStore を有効にする
ローカル クラスター
クラスターのfabricSettings.json で、AddOn 機能として EventStoreService を追加し、クラスターのアップグレードを実行します。
"addOnFeatures": [
"EventStoreService"
],
Azure クラスター バージョン 6.5 以降
Azure クラスターがバージョン 6.5 以降にアップグレードされた場合、EventStore はクラスターで自動的に有効になります。 オプトアウトするには、クラスター テンプレートを次のように更新する必要があります。
- API バージョンの
2019-03-01以降を使用する - クラスターのプロパティ セクションに次のコードを追加します
"fabricSettings": [ … ], "eventStoreServiceEnabled": false
その後、フェールオーバー マネージャーを再起動して EventStore を削除します。
Azure クラスター バージョン 6.4
バージョン 6.4 を使用している場合は、Azure Resource Manager テンプレートを編集して EventStore サービスを有効にすることができます。 これを行うには、 クラスター構成のアップグレード を実行し、次のコードを追加します。PlacementConstraints を使用して、EventStore サービスのレプリカを特定の NodeType (システム サービス専用の NodeType など) に配置できます。
upgradeDescriptionセクションでは、ノードでの再起動をトリガーするように構成のアップグレードを構成します。 別の更新プログラムでセクションを削除できます。
"fabricSettings": [
…
…
…,
{
"name": "EventStoreService",
"parameters": [
{
"name": "TargetReplicaSetSize",
"value": "3"
},
{
"name": "MinReplicaSetSize",
"value": "1"
},
{
"name": "PlacementConstraints",
"value": "(NodeType==<node_type_name_here>)"
}
]
}
],
"upgradeDescription": {
"forceRestart": true,
"upgradeReplicaSetCheckTimeout": "10675199.02:48:05.4775807",
"healthCheckWaitDuration": "00:01:00",
"healthCheckStableDuration": "00:01:00",
"healthCheckRetryTimeout": "00:5:00",
"upgradeTimeout": "1:00:00",
"upgradeDomainTimeout": "00:10:00",
"healthPolicy": {
"maxPercentUnhealthyNodes": 100,
"maxPercentUnhealthyApplications": 100
},
"deltaHealthPolicy": {
"maxPercentDeltaUnhealthyNodes": 0,
"maxPercentUpgradeDomainDeltaUnhealthyNodes": 0,
"maxPercentDeltaUnhealthyApplications": 0
}
}
次のステップ
- EventStore API の概要 - Azure Service Fabric クラスターでの EventStore API の使用
- EventStore - Service Fabric イベントによって提供されるイベントの一覧の詳細を確認する
- Service Fabric の監視と診断の概要 - Service Fabric の監視
- API 呼び出しの完全な一覧を表示する - EventStore REST API リファレンス
- クラスターの監視の詳細については、クラスター とプラットフォームの監視に関するページを参照してください。