IBM Cloud Docs
Définition de règles de routage

Définition de règles de routage

Pour définir une règle de routage, vous devez spécifier une ou plusieurs cibles comme destinations pour les indicateurs. Vous pouvez également définir un ou plusieurs filtres d'inclusion qui définissent les conditions de routage de ces indicateurs vers ces destinations.

Pour chaque route que vous définissez dans le compte, vous pouvez configurer jusqu'à 10 règles. Les règles spécifient les indicateurs qui sont acheminés dans une région et où les acheminer. Pour plus d'informations, voir Présentation du fonctionnement des routes dans votre compte.

Une règle se compose d'une action, d'une ou de plusieurs cibles et de 0 ou de plusieurs filtres d'inclusion.

Cibles

Les cibles définissent la liste des ID cible où les indicateurs sont acheminés.

  • Vous pouvez spécifier jusqu'à trois ID cible par règle.

  • Vous pouvez définir des ID cible pour les ressources disponibles dans la même région que celle dans laquelle vous configurez la route, dans une autre région et dans un autre compte.

Par exemple, vous pouvez définir une liste de cibles comme suit:

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

Les cibles doivent être des instances IBM Cloud Monitoring.

Action

L'action définit si IBM Cloud® Metrics Routing inclut ou exclut des métriques sur la route. Deux actions sont prises en charge: send et drop. S'il n'est pas spécifié, l'action par défaut consiste à envoyer les métriques.

send
Les métriques sont envoyées, en fonction de la règle de routage, sur la route définie.
drop
Les métriques sont exclues, en fonction de la règle de routage, lorsque des métriques sont envoyées sur la route définie.

Filtres d'inclusion

Les filtres d'inclusion définissent les conditions utilisées pour déterminer les indicateurs qui sont acheminés vers les cibles spécifiées dans la règle.

Pour router toutes les métriques, excluez la définition inclusion_filters lorsque vous configurez une route.

Les filtres d'inclusion sont composés de operand, operator et value:

operand

L'opérande est le nom de la propriété dans la cible qui est utilisée pour filtrer les données. Les opérandes suivants sont pris en charge: location, service_name, service_instance, resource_type et resource. La valeur est extraite du CRN cible.

operator

Deux opérateurs sont pris en charge: in et is.

in

La valeur de la propriété d'opérande est comparée à une liste de valeurs.

Vous pouvez définir jusqu'à 20 valeurs.

is

La valeur de la propriété d'opérande est comparée à une valeur unique.

Lors de l'utilisation de is, une seule valeur peut être spécifiée.

value

Une chaîne, ou un tableau de chaînes, à comparer à la propriété operand pour déterminer si la métrique est routée ou non. Lorsque le is operator est utilisé, value doit inclure une chaîne unique. Lorsque le in operator est utilisé, value peut inclure plusieurs chaînes dans un tableau.

Les valeurs valides dépendent de operand.

location
Tout emplacement où IBM Cloud Metrics Routing est disponible.
service_name
Nom de service CRN d'un service [IBM Cloud qui génère des métriques gérées viaIBM Cloud Metrics Routing
service_instance, resource_type et resource
Valeurs appropriées pour un service [IBM Cloud qui génère des métriques gérées viaIBM Cloud Metrics Routing

Notez ces limitations lors de la configuration des filtres d'inclusion.

  • Vous pouvez configurer jusqu'à 7 filtres d'inclusion pour chaque règle.

  • Vous pouvez configurer jusqu'à 20 valeurs pour inclusion_filter.values.

  • Chaque valeur configurée pour inclusion_filter.values peut comporter jusqu'à 100 caractères.

Accès IAM

Les utilisateurs doivent avoir les rôles IAM appropriés pour travailler avec les règles de routage. Pour plus d'informations sur les rôles IAM, voir Gestion de l'accès IAM.

Définition des règles de routage à l'aide de l'interface utilisateur

Vous pouvez configurer les règles de routage des filtres d'action et d'inclusion dans l'interface utilisateur. Pour plus d'informations, voir Gestion des itinéraires.

Définition de règles de routage à l'aide de l'interface de ligne de commande

Les règles pour les routes et les filtres d'inclusion sont définies au format JSON. Les règles sont définies de l'une des manières suivantes:

  • A l'aide de l'option --rules, les informations sont transmises au format JSON directement dans la commande.
  • A l'aide de l'option --files, les informations sont transmises sous forme de fichier JSON.

Exemple qui utilise l'option --rules

L'exemple suivant spécifie des règles directement sur l'option --rules. Dans cet exemple, toutes les métriques de us-east sont acheminées vers 11111111-1111-1111-1111-1111111111111. Toutes les métriques de appconnect, cloudant et containers-kupernetes sont acheminées vers 22222222-2222-2222-2222-222222222222 et 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"]}]}]'

Exemple qui utilise l'option --file

L'exemple suivant spécifie des règles en transmettant un fichier JSON nommé rules_def.json sur l'option --file :

--file rules_def.json

Le fichier rules_def.json contient :

[
  {
    "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"
          ]
        }
    ]
  }
]

Dans cet exemple, seules les métriques de appconnect, cloudant et containers-kubernetes des régions us-south et eu-de sont routées vers les cibles 11111111-1111-1111-1111-111111111111 et 22222222-2222-2222-2222-222222222222.

Définition de règles de routage à l'aide de l'API

Les cibles et les filtres d'inclusion sont définis dans les appels API à l'aide de rules. Les rules sont définis dans une structure JSON.

Par exemple, l'exemple suivant crée une route nommée my-route et envoie des métriques depuis codeengine et container-registry dans la région us-east aux cibles 11111111-1111-1111-1111-111111111111 et 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"]
          }
        ]
      }
    ]
  }'

Pour plus d'informations, voir la référence d'API .