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_type
undresource
. Der Wert wird aus dem Ziel-CRN extrahiert. operator
-
Zwei Operatoren werden unterstützt:
in
undis
.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
is
kann nur 1 Wert angegeben werden.
value
-
Eine Zeichenfolge oder ein Array von Zeichenfolgen, die mit der Eigenschaft
operand
verglichen werden soll, um zu bestimmen, ob die Metrik weitergeleitet wird oder nicht. Wennis
operator
verwendet wird, mussvalue
eine einzelne Zeichenfolge enthalten. Wennin
operator
verwendet wird, kannvalue
mehrere Zeichenfolgen in einem Array enthalten.Die gültigen Werte hängen von der
operand
ab.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_type
undresource
- 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.values
konfigurieren. -
Jeder für
inclusion_filter.values
konfigurierte 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
--files
werden 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.