IBM Cloud Docs
ルーティング・ルールの定義

ルーティング・ルールの定義

ルーティング・ルールを定義するには、メトリックの宛先として 1 つ以上のターゲットを指定する必要があります。 また、それらのメトリックがそれらの宛先にルーティングされる方法の条件を定義する 1 つ以上の包含フィルターを定義することもできます。

アカウントで定義するルートごとに、最大 10 個のルールを構成できます。 ルールは、領域内でルーティングされるメトリックと、それらのルーティング先を指定します。 詳しくは、 アカウントでの経路の機能について を参照してください。

ルールは、1 つのアクション、1 つ以上のターゲット、および 0 個以上の包含フィルターで構成されます。

ターゲット

ターゲットは、メトリックがルーティングされるターゲット ID のリストを定義します。

  • ルールごとに最大 3 つのターゲット ID を指定できます。

  • ルートを構成しているのと同じ地域、別の地域、および別のアカウントで使用可能なリソースに対して、ターゲット ID を定義できます。

例えば、次のようにターゲットのリストを定義できます。

"targets": [{"id":"11111111-1111-1111-1111-111111111111"},{"id":"22222222-2222-2222-2222-222222222222"}]

ターゲットは IBM Cloud Monitoring インスタンスでなければなりません。

アクション

アクションは、 IBM Cloud® Metrics Routing が経路上のメトリックを含めるか除外するかを定義します。 senddrop の 2 つのアクションがサポートされています。 指定しない場合、デフォルトのアクションはメトリックの送信です。

send
メトリックは、ルーティング・ルールに基づいて、定義された経路で送信されます。
drop
メトリックは、定義された経路でメトリックが送信されるときに、ルーティング・ルールに基づいて除外されます。

包含フィルター

包含フィルターは、ルールで指定されたターゲットにルーティングされるメトリックを決定するために使用される条件を定義します。

すべてのメトリックを経路指定するには、経路の構成時に inclusion_filters 定義を除外します。

包含フィルターは、 operandoperator、および value で構成されます。

operand

オペランドは、データのフィルター処理に使用されるターゲット内のプロパティーの名前です。 サポートされるオペランドは、 locationservice_nameservice_instanceresource_type、および resource です。 値はターゲット CRN から抽出されます。

operator

inis の 2 つの演算子がサポートされています。

in

オペランド・プロパティーの値は、値のリストと比較されます。

最大 20 個の値を定義できます。

is

オペランド・プロパティーの値は、単一値と比較されます。

is を使用する場合、指定できる値は 1 つのみです。

value

メトリックが経路指定されるかどうかを決定するために operand プロパティーと比較されるストリングまたはストリングの配列。 is operator を使用する場合、 value には単一ストリングを含める必要があります。 in operator を使用する場合、 value は配列に複数のストリングを含めることができます。

有効な値は、 operand によって異なります。

location
IBM Cloud Metrics Routing が使用可能な任意のロケーション。
service_name
IBM Cloud Metrics Routing を介して管理されるメトリックを生成する [IBM Cloud サービスの CRN サービス名
service_instanceresource_type、およびresource
IBM Cloud Metrics Routing で管理されるメトリックを生成する [IBM Cloud サービスに該当する値

包含フィルターを構成する場合は、以下の制限に注意してください。

  • ルールごとに最大 7 つの包含フィルターを構成できます。

  • inclusion_filter.values には最大 20 個の値を構成できます。

  • inclusion_filter.values 用に構成された各値は、最大 100 文字にすることができます。

IAM アクセス権限

ルーティング・ルールを使用するには、適切なIAMロールが必要です。 IAM 役割について詳しくは、 IAM アクセス権限の管理 を参照してください。

UIを使ったルーティングルールの定義

詳しくは、ルートの管理 を参照してください。

CLI を使用したルーティング・ルールの定義

経路および包含フィルターのルールは、JSON 形式で定義されます。 ルールは、以下の方法で定義されます。

  • --rules を使用すると、オプション情報が JSON としてコマンドに直接渡されます。
  • --files オプションを使用すると、情報が JSON ファイルとして渡されます。

--rulesオプションを使った例

以下の例では、 --rules オプションでルールを直接指定しています。 この例では、 us-east のすべてのメトリックが 11111111-1111-1111-1111-1111111111111 にルーティングされます。 appconnectcloudant、および containers-kupernetes からのすべてのメトリックは、 22222222-2222-2222-2222-222222222222 および 33333333-3333-3333-3333-3333333333333 にルーティングされます。

[{"action": "send", "targets":[{"id":"11111111-1111-1111-1111-1111111111111"}], "inclusion_filters":[{"operand": "location","operator": "is","values": ["us-east"]}]},{"targets":[{"id":"22222222-2222-2222-2222-222222222222"},{"id":"33333333-3333-3333-3333-3333333333333"}], "inclusion_filters":[{"operand": "service_name","operator": "in","values": ["appconnect","cloudant","containers-kubernetes"]}]}]'

--fileオプションを使った例

以下の例では、 --file オプションで rules_def.json という名前の JSON ファイルを渡すことによってルールを指定します。

--file rules_def.json

rules_def.json ファイルには以下の内容が含まれている:

[
  {
    "action":"send",
    "targets": [
      {
        "id":"11111111-1111-1111-1111-111111111111"
      },
      {
        "id":"22222222-2222-2222-2222-222222222222"
      }
    ],
    "inclusion_filters": [
      {
          "operand": "service_name",
          "operator": "in",
          "values": [
            "appconnect",
            "cloudant",
            "containers-kubernetes"
          ]
        },
        {
          "operand": "location",
          "operator": "in",
          "values": [
            "us-south",
            "eu-de"
          ]
        }
    ]
  }
]

この例では、 us-south および eu-de 領域の appconnectcloudant、および containers-kubernetes からのメトリックのみがターゲット 11111111-1111-1111-1111-111111111111 および 22222222-2222-2222-2222-222222222222 にルーティングされます。

API を使用したルーティング・ルールの定義

ターゲットおよび包含フィルターは、 rules を使用して API 呼び出しで定義されます。 rules は JSON 構造で定義されます。

例えば、以下の例では、 my-route という名前の経路を作成し、 us-east 領域の codeengine および container-registry からターゲット 11111111-1111-1111-1111-111111111111 および 22222222-2222-2222-2222-222222222222 にメトリックを送信します。

curl -X POST https://private.<REGION>.metrics-router.cloud.ibm.com/api/v3/routes -H "Authorization: Bearer <IAM_TOKEN>" -H 'content-type: application/json' -d '{
    "name": "my-route",
    "rules": [
      {
        "action":"send",
        "targets": [{"id":"11111111-1111-1111-1111-111111111111"}, {"id":"22222222-2222-2222-2222-222222222222"}],
        "inclusion_filters": [
          {
            "operand": "location",
            "operator": "is",
            "values": ["us-east"]
          },
          {
            "operand": "service_name",
            "operator": "in",
            "values": ["codeengine","container-registry"]
          }
        ]
      }
    ]
  }'

詳しくは、 API リファレンス を参照してください。