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
etresource
. La valeur est extraite du CRN cible. operator
-
Deux opérateurs sont pris en charge:
in
etis
.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 leis
operator
est utilisé,value
doit inclure une chaîne unique. Lorsque lein
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
etresource
- 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 .