Zum Inhalt springen

Ziele erstellen und verwalten

Zuletzt aktualisiert am

Für jede Instanz des Telemetry Router definieren Sie Ziele, an die Ihr Datenstrom weitergeleitet wird. Sie können den Datenstrom an einen OpenTelemetry-kompatiblen Endpunkt oder an einen S3-kompatiblen STACKIT Object Storage senden. Für OpenTelemetry können entweder Basic- oder Token-Auth verwendet werden, damit sich Ihre Instanz des Telemetry Router gegenüber Ihrem Ziel authentifizieren kann. Den eigentlichen Ziel-Endpunkt definieren Sie mit einer URI.

Um die API-Befehle in dieser Anleitung auszuführen, müssen Sie zunächst die folgenden Pfadparameter als Umgebungsvariablen in Ihrem Terminal exportieren (oder sie direkt in den Befehlen ersetzen):

  • $PROJECT_ID: Ihre eindeutige STACKIT Projekt-ID (z. B. 16dbfb51...).
  • $REGION_ID: Die Region, in der sich Ihre Instanz befindet (z. B. eu01 oder eu02).
  • $TELEMETRY_ROUTER_ID: Die eindeutige ID Ihrer Telemetry Router-Instanz.
  • $DESTINATION_ID: Die spezifische Kennung eines Ziels (erforderlich für die Vorgänge Anzeigen, Bearbeiten und Löschen).

Um ein Ziel zu konfigurieren, müssen Sie eine Ziel-uri, einen Typ und eine Authentifizierung angeben.

Sie fügen die Zielkonfiguration als JSON-Key namens config zu den entsprechenden Anfragen hinzu. Die folgende Tabelle zeigt die verfügbaren Keys innerhalb dieses Objekts:

Um ein OpenTelemetry-Ziel zu konfigurieren, ist das openTelemetry-Objekt obligatorisch. Es besteht aus einer URI und Authentifizierungsparametern. Für die Authentifizierung muss entweder basicAuth oder bearerToken angegeben werden.

Das Basic-Auth-Objekt besteht aus zwei Keys:

{
"configType": "OpenTelemetry",
"openTelemetry":
{
"basicAuth": {
"username": "stackit-open-telemetry-client",
"password": "my-top-secret-password"
},
"uri": "https://my-opentelemetry-destination.on-prem-cloud.example.com"
},
"displayName": "My Open Telemetry destination"
}

Um ein S3-Ziel zu konfigurieren, ist das s3-Objekt obligatorisch. Es besteht aus einer Endpunkt-Bucket-Kombination und Authentifizierungsparametern. Für die Authentifizierung muss ein accessKey angegeben werden.

Das Access-Key-Objekt besteht aus zwei Keys:

{
"configType": "S3",
"s3":
{
"accessKey": {
"id": "stackit-s3-client",
"secret": "my-secret"
},
"bucket": "my-bucket",
"endpoint": "https://my-s3-bucket.on-prem-cloud.example.com"
},
"displayName": "My S3 destination"
}

Um ein Ziel für den Telemetry Router zu erstellen, müssen Sie den entsprechenden Endpunkt aufrufen.

Terminal-Fenster
stackit curl -X POST \
"https://telemetry-router.api.stackit.cloud/v1/projects/$PROJECT_ID/regions/$REGION_ID/telemetry-routers/$TELEMETRY_ROUTER_ID/destinations" \
-H "Content-Type: application/json" \
--data '{
"displayName": "<DISPLAY_NAME>",
"description": "<DESCRIPTION>",
"config": <CONFIG_OBJECT>
}'
Terminal-Fenster
stackit curl -X POST \
"https://telemetry-router.api.stackit.cloud/v1/projects/16dbfb51-7a75-42d3-a51d-99f87f48cd32/regions/eu01/telemetry-routers/d5b5cdcc-c155-4d66-82ef-4289db8e4557/destinations" \
-H "Content-Type: application/json" \
--data '{
"displayName": "my-telemetry-destination",
"description": "My telemetry destination",
"config": {
"configType": "S3",
"s3": {
"accessKey": {
"id": "stackit-s3-client",
"secret": "my-secret"
},
"bucket": "my-bucket",
"endpoint": "https://my-s3-bucket.on-prem-cloud.example.com"
},
"displayName": "My S3 destination"
}
}'
Terminal-Fenster
stackit curl -X POST \
"https://telemetry-router.api.stackit.cloud/v1/projects/16dbfb51-7a75-42d3-a51d-99f87f48cd32/regions/eu01/telemetry-routers/d5b5cdcc-c155-4d66-82ef-4289db8e4557/destinations" \
-H "Content-Type: application/json" \
--data '{
"displayName": "my-telemetry-destination",
"description": "My telemetry destination",
"config": {
"configType": "OpenTelemetry",
"openTelemetry": {
"basicAuth": {
"username": "stackit-open-telemetry-client",
"password": "my-top-secret-password"
},
"uri": "https://my-opentelemetry-destination.on-prem-cloud.example.com"
},
"displayName": "My Open Telemetry destination"
}
}'
Terminal-Fenster
stackit curl -X GET \
"https://telemetry-router.api.stackit.cloud/v1/projects/$PROJECT_ID/regions/$REGION_ID/telemetry-routers/$TELEMETRY_ROUTER_ID/destinations" \
-H "Content-Type: application/json"
Terminal-Fenster
stackit curl -X GET \
"https://telemetry-router.api.stackit.cloud/v1/projects/16dbfb51-7a75-42d3-a51d-99f87f48cd32/regions/eu01/telemetry-routers/d5b5cdcc-c155-4d66-82ef-4289db8e4557/destinations" \
-H "Content-Type: application/json"
Terminal-Fenster
stackit curl -X GET \
"https://telemetry-router.api.stackit.cloud/v1/projects/$PROJECT_ID/regions/$REGION_ID/telemetry-routers/$TELEMETRY_ROUTER_ID/destinations/$DESTINATION_ID" \
-H "Content-Type: application/json"
Terminal-Fenster
stackit curl -X GET \
"https://telemetry-router.api.stackit.cloud/v1/projects/16dbfb51-7a75-42d3-a51d-99f87f48cd32/regions/eu01/telemetry-routers/d5b5cdcc-c155-4d66-82ef-4289db8e4557/destinations/60e59099-8209-4b69-a553-239fd79038a3" \
-H "Content-Type: application/json"
Terminal-Fenster
stackit curl -X PUT \
"https://telemetry-router.api.stackit.cloud/v1/projects/$PROJECT_ID/regions/$REGION_ID/telemetry-routers/$TELEMETRY_ROUTER_ID/destinations/$DESTINATION_ID" \
-H "Content-Type: application/json" \
--data '{
"displayName": "<DISPLAY_NAME>",
"description": "<DESCRIPTION>",
"config": <CONFIG_OBJECT>
}'

Beispiel für die Bearbeitung eines Ziels zu einem S3-kompatiblen Speicher für eine bestehende Telemetry Router-Instanz

Abschnitt betitelt „Beispiel für die Bearbeitung eines Ziels zu einem S3-kompatiblen Speicher für eine bestehende Telemetry Router-Instanz“
Terminal-Fenster
stackit curl -X PUT \
"https://telemetry-router.api.stackit.cloud/v1/projects/16dbfb51-7a75-42d3-a51d-99f87f48cd32/regions/eu01/telemetry-routers/d5b5cdcc-c155-4d66-82ef-4289db8e4557/destinations/60e59099-8209-4b69-a553-239fd79038a3" \
-H "Content-Type: application/json" \
--data '{
"config": {
"configType": "S3",
"s3": {
"accessKey": {
"id": "stackit-s3-client",
"secret": "my-secret"
},
"bucket": "my-bucket",
"endpoint": "https://my-s3-bucket.on-prem-cloud.example.com"
},
"displayName": "My S3 destination"
}
}'

Beispiel für die Bearbeitung eines Ziels zu einem OpenTelemetry-Speicher für eine bestehende Telemetry Router-Instanz

Abschnitt betitelt „Beispiel für die Bearbeitung eines Ziels zu einem OpenTelemetry-Speicher für eine bestehende Telemetry Router-Instanz“
Terminal-Fenster
stackit curl -X PUT \
"https://telemetry-router.api.stackit.cloud/v1/projects/16dbfb51-7a75-42d3-a51d-99f87f48cd32/regions/eu01/telemetry-routers/d5b5cdcc-c155-4d66-82ef-4289db8e4557/destinations/60e59099-8209-4b69-a553-239fd79038a3" \
-H "Content-Type: application/json" \
--data '{
"config": {
"configType": "OpenTelemetry",
"openTelemetry": {
"basicAuth": {
"username": "stackit-open-telemetry-client",
"password": "my-top-secret-password"
},
"uri": "https://my-opentelemetry-destination.on-prem-cloud.example.com"
},
"displayName": "My Open Telemetry destination"
}
}'

Um ein Telemetry Router-Ziel zu löschen, müssen Sie den DELETE-Endpunkt aufrufen.

Terminal-Fenster
stackit curl -X DELETE \
"https://telemetry-router.api.stackit.cloud/v1/projects/$PROJECT_ID/regions/$REGION_ID/telemetry-routers/$TELEMETRY_ROUTER_ID/destinations/$DESTINATION_ID" \
-H "Content-Type: application/json"

Beispiel:

Terminal-Fenster
stackit curl -X DELETE \
"https://telemetry-router.api.stackit.cloud/v1/projects/16dbfb51-7a75-42d3-a51d-99f87f48cd32/regions/eu01/telemetry-routers/d5b5cdcc-c155-4d66-82ef-4289db8e4557/destinations/60e59099-8209-4b69-a553-239fd79038a3" \
-H "Content-Type: application/json"

Im folgenden ein paar Beispiele, welche bearbeitet und angewendet werden können.

Logs können mit Matchers auf basis der angegebenen Attribute erlaubt werden.

Terminal-Fenster
stackit curl -X POST \
"https://telemetry-router.api.stackit.cloud/v1/projects/$PROJECT_ID/regions/$REGION_ID/telemetry-routers/$TELEMETRY_ROUTER_ID/destinations" \
-H "Content-Type: application/json" \
--data '{
"name": "secrets-manager-destination",
"description": "Forwards only logs originating from the secrets-manager service",
"type": "OTLP",
"config": {
"configType": "OpenTelemetry",
"filter": {
"attributes": [
{
"key": "service.name",
"level": "logRecord",
"matcher": "=",
"values": [
"secrets-manager"
]
}
]
},
"uri": "https://my-opentelemetry-destination.logs.eu01.onstackit.cloud/otlp/v1/logs",
"bearerToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6ImE1NTZmYWI0MWY2YzQ1MGY3ZDU5YzRmNGVkNWI0NmMxIn0.eyJub3RpY2UiOiJDb25ncmF0dWxhdGlvbnMhIFlvdSBoYXZlIGRlY29kZWQgYSBiZWFyZXIgdG9rZW4gbWVhbnQgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMuIFdlIGF0IFNUQUNLSVQgZW1waGFzaXplIHNlY3VyaXR5IGFuZCBkYXRhIGludGVncml0eS4gUGxlYXNlIHVzZSB5b3VyIG93biBhY2Nlc3MgdG9rZW4gZm9yIHlvdXIgcmVzb3VyY2VzLiJ9.LPOHfT45JNOpTSh_q6x4pDRVK052QwUwSFU9tLPB6gGrYjf4dTKjWJ-2aRdd2LlWsxO5y0it89VsZpbzVRvI5Q"
}
}'

Logs können mit Filtern auf basis der angegebenen Attribute gefiltert werden.

Terminal-Fenster
stackit curl -X POST \
"https://telemetry-router.api.stackit.cloud/v1/projects/$PROJECT_ID/regions/$REGION_ID/telemetry-routers/$TELEMETRY_ROUTER_ID/destinations" \
-H "Content-Type: application/json" \
--data '{
"name": "secrets-manager-destination",
"description": "Forwards only logs originating from the secrets-manager service",
"type": "OTLP",
"config": {
"configType": "OpenTelemetry",
"filter": {
"attributes": [
{
"key": "service.name",
"level": "logRecord",
"matcher": "!=",
"values": [
"secrets-manager"
]
}
]
},
"uri": "https://my-opentelemetry-destination.logs.eu01.onstackit.cloud/otlp/v1/logs",
"bearerToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6ImE1NTZmYWI0MWY2YzQ1MGY3ZDU5YzRmNGVkNWI0NmMxIn0.eyJub3RpY2UiOiJDb25ncmF0dWxhdGlvbnMhIFlvdSBoYXZlIGRlY29kZWQgYSBiZWFyZXIgdG9rZW4gbWVhbnQgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMuIFdlIGF0IFNUQUNLSVQgZW1waGFzaXplIHNlY3VyaXR5IGFuZCBkYXRhIGludGVncml0eS4gUGxlYXNlIHVzZSB5b3VyIG93biBhY2Nlc3MgdG9rZW4gZm9yIHlvdXIgcmVzb3VyY2VzLiJ9.LPOHfT45JNOpTSh_q6x4pDRVK052QwUwSFU9tLPB6gGrYjf4dTKjWJ-2aRdd2LlWsxO5y0it89VsZpbzVRvI5Q"
}
}'