この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

トランザクショナル要素

概要

このページでは、ヘルス同期トランザクショナルインクリメントの整合性モデルに送信できる正確なJSONメッセージについて説明します。

JSONプロパティ: "health"

ヘルスは、`"health"`プロパティを使用して共通JSONオブジェクトに送信できます。

  • 例: ヘルス`transactional_increments` JSON

   "apiKey":"your api key",
   "collection_timestamp":1585818978,
   "internalHostname":"lnx-343242.srv.stackstate.com",
   "events":{},
   "metrics":[],
   "service_checks":[],
   "health":[
      {
        "consistency_model": "TRANSACTIONAL_INCREMENTS",
        "increment": {
              "checkpoint": {
                  "offset": 5,
                  "batch_index": 102
              },
              "previous_checkpoint": {
                  "offset": 5,
                  "batch_index": 100
              }
        },
        "stream": {
          "urn": "urn:health:sourceId:streamId"
          //"sub_stream_id": "subStreamId" Optional
        },
        "check_states": [
          {
            "checkStateId": "checkStateId1",
            "message": "Server Running out of disk space",
            "health": "Deviating",
            "topologyElementIdentifier": "server-1",
            "name": "Disk Usage"
          },
          {
            "checkStateId": "checkStateId2",
            "message": "Provisioning failed. [Learn more](https://www.any-link.com)",
            "health": "critical",
            "topologyElementIdentifier": "server-2",
            "name": "Health monitor"
          },
          {
            "checkStateId": "checkStateId3",
            "delete": true
          }
        ]
      }
   ],
   "topologies":[]

すべてのヘルス トランザクショナルインクリメントデータペイロードには、以下の詳細が含まれています:

  • インクリメント - 各メッセージにはインクリメントオブジェクトが必要です。これにより、SUSE Observabilityはメッセージの完全なチェーンを追跡し、データの再送信やデータの予期しないギャップが発生しているかどうかを検出できるようになります。インクリメントメタデータとして以下のフィールドを持ちます:

    • チェックポイント - メッセージに存在する`check_states`に属するチェックポイントを提供するオブジェクトで、2つのフィールドがあります:

      • オフセット - ストリーミングパイプラインによってメッセージに割り当てられたオフセット。例えば、Kafkaオフセット。

      • batch_index - Optional.単一のメッセージを使用して複数の`check_states`を蓄積する場合、バッチインデックスはメッセージに存在する最新のインデックスを表し、大きなバッチを別々のAPI呼び出しで送信できるようにします。

    • 前回のチェックポイント - オプション。以前に通信されたチェックポイントを表し、サブストリームの最初の送信時には空である可能性があります。これにより、SUSE Observabilityはアップストリームからデータが欠落している可能性があるかどうかを追跡できます。

  • ストリーム - どのスナップショットと`check_states`が一緒に属するかを識別するオブジェクトを提供します。以下のフィールドがあります。

    • urn - データソースとストリームIDがSUSE Observability URNとしてエンコードされ、次の規則に従います: urn:health:<sourceId>:<streamId> ここで`<sourceId>`は外部データソースの名前で、`<streamId>`はヘルスデータストリームの一意の識別子です。

    • sub_stream_id - Optional.ストリームヘルスデータのサブセットの識別子です。ストリームデータが複数のエージェントによって配布され、報告される場合、これにより`sub_stream_id`ごとのスナップショットのライフサイクルが可能になります。

  • check_states - チェック状態のリストです。各チェック状態には以下のフィールドを持つことができます:

    • checkStateId - 外部システムにおけるチェック状態の識別子です。

    • message - オプションです。SUSE ObservabilityのUIに表示するメッセージです。データはマークダウンとして解釈され、外部チェック状態を生成した外部システムチェックへのリンクを含めることができます。

    • ヘルス - 次のいずれかのSUSE Observabilityヘルス状態値: ClearDeviatingCritical.

    • topologyElementIdentifier - チェック状態をSUSE Observabilityトポロジー要素にバインドするために使われます。

    • name - 外部チェック状態の名前です。

    • delete - 関連する`checkStateId`の削除リクエストとして解釈されるフラグです。作成のための他のフィールドが存在しても、例えば、name, health, …​、削除が優先されます。

ヘルスをSUSE Observabilityに送信します。

ヘルスはHTTP POSTを介して1つのJSONメッセージで送信できます。以下の例では、1つの外部監視システムからSUSE Observabilityに2つのチェック状態を含むスナップショットが送信されます。

curl -X POST \
 '<STACKSTATE_RECEIVER_API_ADDRESS>' \
 -H 'Content-Type: application/json' \
 -d '{
  "collection_timestamp": 1548857167,
  "internalHostname": "local.test",
  "health": [
    {
      "consistency_model": "TRANSACTIONAL_INCREMENTS",
      "increment": {
            "checkpoint": {
                "offset": 5,
                "batch_index": 102
            },
            "previous_checkpoint": {
                "offset": 5,
                "batch_index": 100
            }
      },
      "stream": {
        "urn": "urn:health:sourceId:streamId"
      },
      "check_states": [
        {
          "checkStateId": "checkStateId1",
          "message": "Server Running out of disk space",
          "health": "Deviating",
          "topologyElementIdentifier": "server-1",
          "name": "Disk Usage"
        },
        {
          "checkStateId": "checkStateId2",
          "message": "Provisioning failed. [Learn more](https://www.any-link.com)",
          "health": "critical",
          "topologyElementIdentifier": "server-2",
          "name": "Health monitor"
        },
        {
          "checkStateId": "checkStateId3",
          "delete": true
        }
      ]
    }
  ]
}'