NachverfolgungAWSSDK-Rufe mit dem X-Ray-SDK SDK for Go - AWS X-Ray

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

NachverfolgungAWSSDK-Rufe mit dem X-Ray-SDK SDK for Go

Wenn Ihre Bewerbung telefoniertAWS-Services zum Speichern von Daten, zum Schreiben in eine Warteschlange oder das Senden von Benachrichtigungen, verfolgt das X-Ray-SDK für Go die Aufrufe nachgelagert inUntersegmenteaus. NachverfolgtAWS-Services und -Ressourcen, auf die Sie innerhalb dieser Services zugreifen (z. B. ein Amazon S3 S3-Bucket oder eine Amazon SQS SQS-Warteschlange) erscheinen als nachgelagerte Knoten in der Service-Übersicht der X-Ray-Konsole.

Um AWS SDK-Clients zu verfolgen, umschließen Sie das Client-Objekt mit dem xray.AWS()-Aufruf, wie im folgenden Beispiel dargestellt.

Beispiel main.go

var dynamo *dynamodb.DynamoDB func main() { dynamo = dynamodb.New(session.Must(session.NewSession())) xray.AWS(dynamo.Client) }

Wenn Sie dann den AWS SDK-Client nutzen, verwenden Sie die Version withContext der Aufrufmethode und übergeben Sie den context aus dem http.Request-Objekt, das an den Handler übergeben wurde.

Beispiel main.go —AWSSDK-Anruf

func listTablesWithContext(ctx context.Context) { output := dynamo.ListTablesWithContext(ctx, &dynamodb.ListTablesInput{}) doSomething(output) }

Für alle Services sehen Sie den Namen der API, die in der X-Ray-Konsole aufgerufen wird. Für eine Teilmenge von Diensten fügt das X-Ray SDK dem Segment Informationen hinzu, um mehr Granularität in der Service-Map zu bieten.

Wenn Sie beispielsweise einen Anruf mit einem instrumentierten DynamoDB-Client tätigen, fügt das SDK dem Segment den Tabellennamen für Aufrufe hinzu, die auf eine Tabelle abzielen. In der Konsole wird jede Tabelle als separater Knoten in der Service-Map mit einem generischen DynamoDB-Knoten für Aufrufe angezeigt, die keine Tabelle abzielen.

Beispiel Untersegment für einen Aufruf von DynamoDB zum Speichern eines Elements

{ "id": "24756640c0d0978a", "start_time": 1.480305974194E9, "end_time": 1.4803059742E9, "name": "DynamoDB", "namespace": "aws", "http": { "response": { "content_length": 60, "status": 200 } }, "aws": { "table_name": "scorekeep-user", "operation": "UpdateItem", "request_id": "UBQNSO5AEM8T4FDA4RQDEB94OVTDRVV4K4HIRGVJF66Q9ASUAAJG", } }

Wenn Sie auf benannte Ressourcen zugreifen, werden durch Aufrufe der folgenden Services weitere Knoten in der Service-Übersicht erstellt. Durch Aufrufe, die keinen bestimmten Ressourcen gelten, wird ein generischer Knoten für den Service erstellt.

  • Amazon DynamoDB— Tabellenname

  • Amazon Simple Storage Service— Bucket und Schlüsselname

  • Amazon Simple Queue Service— Warteschlangenname