Routing-Regeln definieren
Zum Definieren einer Routing-Regel müssen Sie ein oder mehrere Ziele als Ziele für Metriken angeben. Sie können auch einen oder mehrere Einschlussfilter definieren, die die Bedingungen für die Weiterleitung dieser Metriken an diese Ziele definieren.
Für jede Route, die Sie im Konto definieren, können Sie bis zu zehn Regeln konfigurieren. Die Regeln geben an, welche Metriken in einer Region weitergeleitet werden und wohin sie weitergeleitet werden. Weitere Informationen finden Sie unter Funktionsweise von Routen in Ihrem Account verstehen.
Eine Regel besteht aus 1 Aktion, 1 oder mehr Zielen und 0 oder mehr Einschlussfiltern.
Ziele
Ziele definieren die Liste der Ziel-IDs, an die die Metriken weitergeleitet werden.
-
Sie können bis zu drei Ziel-IDs pro Regel angeben.
-
Sie können Ziel-IDs für Ressourcen definieren, die in derselben Region verfügbar sind, in der Sie die Route konfigurieren, in einer anderen Region und in einem anderen Konto.
Sie können beispielsweise wie folgt eine Liste mit Zielen definieren:
"targets": [{"id":"11111111-1111-1111-1111-111111111111"},{"id":"22222222-2222-2222-2222-222222222222"}]
Ziele müssen IBM Cloud Monitoring-Instanzen sein.
Aktion
Die Aktion definiert, ob IBM Cloud® Metrics Routing Metriken für die Route ein-oder ausschließt. Es werden zwei Aktionen unterstützt: send und drop. Erfolgt keine Angabe, werden die Metriken standardmäßig gesendet.
send- Metriken werden basierend auf der Routing-Regel auf der definierten Route gesendet.
drop- Metriken werden basierend auf der Routing-Regel ausgeschlossen, wenn Metriken auf der definierten Route gesendet werden.
Einschlussfilter
Einschlussfilter definieren die Bedingungen, die verwendet werden, um zu bestimmen, welche Metriken an die in der Regel angegebenen Ziele weitergeleitet werden sollen.
Um alle Metriken weiterzuleiten, schließen Sie die Definition inclusion_filters aus, wenn Sie eine Route konfigurieren.
Einschlussfilter setzen sich aus operand, operator und value zusammen:
operand-
Operand ist der Name der Eigenschaft im Ziel, die zum Filtern von Daten verwendet wird. Die folgenden Operanden werden unterstützt:
location,service_name,service_instance,resource_typeundresource. Der Wert wird aus dem Ziel-CRN extrahiert. operator-
Zwei Operatoren werden unterstützt:
inundis.in-
Der Wert der Operandeneigenschaft wird mit einer Liste von Werten verglichen.
Sie können bis zu 20 Werte definieren.
is-
Der Wert der Operandeneigenschaft wird mit einem einzelnen Wert verglichen.
Bei Verwendung von
iskann nur 1 Wert angegeben werden.
value-
Eine Zeichenfolge oder ein Array von Zeichenfolgen, die mit der Eigenschaft
operandverglichen werden soll, um zu bestimmen, ob die Metrik weitergeleitet wird oder nicht. Wennisoperatorverwendet wird, mussvalueeine einzelne Zeichenfolge enthalten. Wenninoperatorverwendet wird, kannvaluemehrere Zeichenfolgen in einem Array enthalten.Die gültigen Werte hängen von der
operandab.location- Beliebige Position, an der IBM Cloud Metrics Routing ist verfügbar.
service_name- Der CRN-Servicename eines [IBM Cloud-Service, der Metriken generiert, die überIBM Cloud Metrics Routingverwaltet werden.
service_instance,resource_typeundresource- Werte, die für einen [IBM Cloud-Service geeignet sind, der Metriken generiert, die überIBM Cloud Metrics Routing
Beachten Sie diese Einschränkungen beim Konfigurieren von Einschlussfiltern.
-
Sie können bis zu 7 Einschlussfilter für jede Regel konfigurieren.
-
Sie können bis zu 20 Werte für
inclusion_filter.valueskonfigurieren. -
Jeder für
inclusion_filter.valueskonfigurierte Wert kann maximal 100 Zeichen umfassen.
IAM-Zugriff
Benutzer müssen über die entsprechenden IAM-Rollen verfügen, um mit Routing-Regeln arbeiten zu können. Informationen zu IAM-Rollen finden Sie unter IAM-Zugriff verwalten.
Definition von Routing-Regeln mit Hilfe der Benutzeroberfläche
Sie können Aktions- und Einschlussfilter-Routingregeln in der Benutzeroberfläche konfigurieren. Weitere Informationen finden Sie unter Verwaltung von Routen.
Routing-Regeln über die Befehlszeilenschnittstelle definieren
Regeln für Routen und Einschlussfilter werden im JSON-Format definiert. Regeln werden wie folgt definiert:
- Durch die Verwendung der
--rules-Optionsinformationen werden JSON-Daten direkt im Befehl übergeben. - Bei Verwendung der Option
--fileswerden Informationen als JSON-Datei übergeben.
Beispiel, das die Option --rules verwendet
Im folgenden Beispiel werden Regeln direkt in der Option --rules angegeben. In diesem Beispiel werden alle Metriken von us-east an 11111111-1111-1111-1111-1111111111111 weitergeleitet. Alle Metriken aus
appconnect, cloudant und containers-kupernetes werden an 22222222-2222-2222-2222-222222222222 und 33333333-3333-3333-3333-3333333333333 weitergeleitet.
[{"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"]}]}]'
Beispiel, das die Option --file verwendet
Im folgenden Beispiel werden Regeln angegeben, indem eine JSON-Datei mit dem Namen rules_def.json in der Option --file übergeben wird:
--file rules_def.json
Die Datei rules_def.json enthält:
[
{
"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"
]
}
]
}
]
In diesem Beispiel werden nur Metriken aus appconnect, cloudant und containers-kubernetes aus den Regionen us-south und eu-de an die Ziele 11111111-1111-1111-1111-111111111111 und 22222222-2222-2222-2222-222222222222 weitergeleitet.
Routing-Regeln mithilfe der API definieren
Ziele und Einschlussfilter werden in API-Aufrufen mit rules definiert. Die rules sind in einer JSON-Struktur definiert.
Das folgende Beispiel erstellt eine Route mit dem Namen my-route und sendet Metriken von codeengine und container-registry in der us-east-Region an die Ziele 11111111-1111-1111-1111-111111111111 und 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"]
}
]
}
]
}'
Weitere Informationen finden Sie in der API-Referenz.