En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar escenarios comunes usando AWS Command Line Interface con X-Ray.
Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.
En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.
Temas
Acciones
En el siguiente ejemplo de código, se muestra cómo utilizar batch-traces-get
.
- AWS CLI
-
Para obtener una lista de rastros
En el siguiente ejemplo de
batch-get-traces
, se recupera una lista de rastros identificada por ID. El registro de seguimiento completo incluye un documento para cada segmento, compilado a partir de todos los documentos de segmento recibidos que tienen el mismo ID de registro de seguimiento.aws xray batch-get-traces \ --trace-ids
1-5d82881a-0a9126e92a73e971eed891b9
Salida:
{ "Traces": [ { "Id": "1-5d82881a-0a9126e92a73e971eed891b9", "Duration": 0.232, "Segments": [ { "Id": "54aff5735b12dd28", "Document": "{\"id\":\"54aff5735b12dd28\",\"name\":\"Scorekeep\",\"start_time\":1.568835610432E9,\"end_time\":1.568835610664E9,\"http\":{\"request\":{\"url\":\"http://scorekeep-env-1.m4fg2pfzpv.us-east-2.elasticbeanstalk.com/api/user\",\"method\":\"POST\",\"user_agent\":\"curl/7.59.0\",\"client_ip\":\"52.95.4.28\",\"x_forwarded_for\":true},\"response\":{\"status\":200}},\"aws\":{\"elastic_beanstalk\":{\"version_label\":\"Sample Application-1\",\"deployment_id\":3,\"environment_name\":\"Scorekeep-env-1\"},\"ec2\":{\"availability_zone\":\"us-east-2b\",\"instance_id\":\"i-0e3cf4d2de0f3f37a\"},\"xray\":{\"sdk_version\":\"1.1.0\",\"sdk\":\"X-Ray for Java\"}},\"service\":{\"runtime\":\"OpenJDK 64-Bit Server VM\",\"runtime_version\":\"1.8.0_222\"},\"trace_id\":\"1-5d82881a-0a9126e92a73e971eed891b9\",\"origin\":\"AWS::ElasticBeanstalk::Environment\",\"subsegments\":[{\"id\":\"2d6900034ccfe558\",\"name\":\"DynamoDB\",\"start_time\":1.568835610658E9,\"end_time\":1.568835610664E9,\"http\":{\"response\":{\"status\":200,\"content_length\":61}},\"aws\":{\"table_name\":\"scorekeep-user\",\"operation\":\"UpdateItem\",\"request_id\":\"TPEIDNDUROMLPOV17U4A79555NVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-user\"]},\"namespace\":\"aws\"}]}" }, { "Id": "0f278b6334c34e6b", "Document": "{\"id\":\"0f278b6334c34e6b\",\"name\":\"DynamoDB\",\"start_time\":1.568835610658E9,\"end_time\":1.568835610664E9,\"parent_id\":\"2d6900034ccfe558\",\"inferred\":true,\"http\":{\"response\":{\"status\":200,\"content_length\":61}},\"aws\":{\"table_name\":\"scorekeep-user\",\"operation\":\"UpdateItem\",\"request_id\":\"TPEIDNDUROMLPOV17U4A79555NVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-user\"]},\"trace_id\":\"1-5d82881a-0a9126e92a73e971eed891b9\",\"origin\":\"AWS::DynamoDB::Table\"}" } ] } ], "UnprocessedTraceIds": [] }
Para obtener más información, consulte Using the AWS X-Ray API with the AWS CLI en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información de la API, consulte BatchTracesGet
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar create-group
.
- AWS CLI
-
Para crear un grupo
En el siguiente ejemplo de
create-group
, se crea un recurso de grupo llamadoAdminGroup
. El grupo obtiene una expresión de filtro que define los criterios del grupo como un segmento relacionado con un servicio específico que genera un error.aws xray create-group \ --group-name
"AdminGroup"
\ --filter-expression "service(\"mydomain.com\") {fault OR error}"Salida:
{ "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault OR error}" }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte CreateGroup
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar create-sampling-rule
.
- AWS CLI
-
Para crear una regla de muestreo
En el siguiente ejemplo de
create-sampling-rule
, se crea una regla para controlar el comportamiento de muestreo para aplicaciones instrumentadas. Las reglas se proporcionan en un archivo JSON. La mayoría de los campos de la regla de muestreo son obligatorios para poder crear la regla.aws xray create-sampling-rule \ --cli-input-json
file://9000-base-scorekeep.json
Contenido de
9000-base-scorekeep.json
:{ "SamplingRule": { "RuleName": "base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 5, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1 } }
Salida:
{ "SamplingRuleRecord": { "SamplingRule": { "RuleName": "base-scorekeep", "RuleARN": "arn:aws:xray:us-west-2:123456789012:sampling-rule/base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 5, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530574410.0, "ModifiedAt": 1530574410.0 } }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte CreateSamplingRule
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar delete-group
.
- AWS CLI
-
Para eliminar un grupo
En el siguiente ejemplo de
delete-group
, se elimina el recurso de grupo especificado.aws xray delete-group \ --group-name
"AdminGroup"
\ --group-arn"arn:aws:xray:us-east-2:123456789012:group/AdminGroup/123456789"
Este comando no genera ninguna salida.
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte DeleteGroup
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar delete-sampling-rule
.
- AWS CLI
-
Para eliminar una regla de muestreo
En el siguiente ejemplo de
delete-sampling-rule
, se elimina la regla de muestreo especificada. Puede especificar el grupo mediante el nombre del grupo o el ARN del grupo.aws xray delete-sampling-rule \ --rule-name
polling-scorekeep
Salida:
{ "SamplingRuleRecord": { "SamplingRule": { "RuleName": "polling-scorekeep", "RuleARN": "arn:aws:xray:us-west-2:123456789012:sampling-rule/polling-scorekeep", "ResourceARN": "*", "Priority": 5000, "FixedRate": 0.003, "ReservoirSize": 0, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "GET", "URLPath": "/api/state/*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530574399.0, "ModifiedAt": 1530574399.0 } }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte DeleteSamplingRule
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar get-encryption-config
.
- AWS CLI
-
Para recuperar la configuración de cifrado
En el siguiente ejemplo de
get-encryption-config
, se recupera la configuración de cifrado actual para datos de AWS X-Ray.aws xray get-encryption-config
Salida:
{ "EncryptionConfig": { "KeyId": "ae4aa6d49-a4d8-9df9-a475-4ff6d7898456", "Status": "ACTIVE", "Type": "NONE" } }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte GetEncryptionConfig
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar get-group
.
- AWS CLI
-
Para recuperar un grupo
En el siguiente ejemplo de
get-group
, se muestran los detalles del grupo de grupo especificado. Los detalles incluyen el nombre del grupo, el ARN del grupo y la expresión de filtro que define los criterios de ese grupo. El ARN también puede recuperar los grupos.aws xray get-group \ --group-name
"AdminGroup"
Salida:
{ "Group": [ { "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault OR error}" } ] }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte GetGroup
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar get-groups
.
- AWS CLI
-
Para recuperar todos los grupos
En el siguiente ejemplo, se muestran los detalles de todos los grupos activos.
aws xray get-groups
Salida:
{ "Groups": [ { "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"example.com\") {fault OR error}" }, { "GroupName": "SDETGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/SDETGroup/987654321", "FilterExpression": "responsetime > 2" } ] }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte GetGroups
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar get-sampling-rules
.
- AWS CLI
-
Para recuperar todas las reglas de muestreo
En el siguiente ejemplo de
get-sampling-rules
, se muestran los detalles de todas las reglas de muestreo disponibles.aws xray get-sampling-rules
Salida:
{ "SamplingRuleRecords": [ { "SamplingRule": { "RuleName": "Default", "RuleARN": "arn:aws:xray:us-east-1::sampling-rule/Default", "ResourceARN": "*", "Priority": 10000, "FixedRate": 0.01, "ReservoirSize": 0, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 0.0, "ModifiedAt": 1530558121.0 }, { "SamplingRule": { "RuleName": "base-scorekeep", "RuleARN": "arn:aws:xray:us-east-1::sampling-rule/base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 2, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530573954.0, "ModifiedAt": 1530920505.0 }, { "SamplingRule": { "RuleName": "polling-scorekeep", "RuleARN": "arn:aws:xray:us-east-1::sampling-rule/polling-scorekeep", "ResourceARN": "*", "Priority": 5000, "FixedRate": 0.003, "ReservoirSize": 0, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "GET", "URLPath": "/api/state/*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530918163.0, "ModifiedAt": 1530918163.0 } ] }
Para obtener más información, consulte Using Sampling Rules with the X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte GetSamplingRules
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar get-sampling-targets
.
- AWS CLI
-
Para solicitar una cuota de muestreo
En el siguiente ejemplo de
get-sampling-targets
, se solicita una cuota de muestreo para las reglas que el servicio utiliza para muestrear solicitudes. La respuesta de AWS X-Ray incluye una cuota que se puede utilizar en lugar de tomarla prestada del bucket.aws xray get-sampling-targets \ --sampling-statistics-documents '
[ { "RuleName": "base-scorekeep", "ClientID": "ABCDEF1234567890ABCDEF10", "Timestamp": "2018-07-07T00:20:06, "RequestCount": 110, "SampledCount": 20, "BorrowCount": 10 }, { "RuleName": "polling-scorekeep", 31, "BorrowCount": 0 } ]
'Salida:
{ "SamplingTargetDocuments": [ { "RuleName": "base-scorekeep", "FixedRate": 0.1, "ReservoirQuota": 2, "ReservoirQuotaTTL": 1530923107.0, "Interval": 10 }, { "RuleName": "polling-scorekeep", "FixedRate": 0.003, "ReservoirQuota": 0, "ReservoirQuotaTTL": 1530923107.0, "Interval": 10 } ], "LastRuleModification": 1530920505.0, "UnprocessedStatistics": [] }
Para obtener más información, consulte Using Sampling Rules with the X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte GetSamplingTargets
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar get-service-graph
.
- AWS CLI
-
Para obtener un gráfico de servicio
En el ejemplo siguiente se muestra un documento dentro de un período de tiempo determinado que describe los servicios que procesan solicitudes entrantes y los servicios posteriores a los que llaman como resultado.
aws xray get-service-graph \ --start-time
1568835392.0
--end-time1568835446.0
Salida:
{ "Services": [ { "ReferenceId": 0, "Name": "Scorekeep", "Names": [ "Scorekeep" ], "Root": true, "Type": "AWS::ElasticBeanstalk::Environment", "State": "active", "StartTime": 1568835392.0, "EndTime": 1568835446.0, "Edges": [ { "ReferenceId": 1, "StartTime": 1568835392.0, "EndTime": 1568835446.0, "SummaryStatistics": { "OkCount": 14, "ErrorStatistics": { "ThrottleCount": 0, "OtherCount": 0, "TotalCount": 0 }, "FaultStatistics": { "OtherCount": 0, "TotalCount": 0 }, "TotalCount": 14, "TotalResponseTime": 0.13 }, "ResponseTimeHistogram": [ { "Value": 0.008, "Count": 1 }, { "Value": 0.005, "Count": 7 }, { "Value": 0.009, "Count": 1 }, { "Value": 0.021, "Count": 1 }, { "Value": 0.038, "Count": 1 }, { "Value": 0.007, "Count": 1 }, { "Value": 0.006, "Count": 2 } ], "Aliases": [] }, ... TRUNCATED FOR BREVITY ... ] } ], "StartTime": 1568835392.0, "EndTime": 1568835446.0, "ContainsOldGroupVersions": false }
Para obtener más información, consulte Using the AWS X-Ray API with the AWS CLI en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte GetServiceGraph
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar get-trace-summaries
.
- AWS CLI
-
Para obtener un resumen del rastro
En el siguiente ejemplo de
get-trace-summaries
, se recuperan los ID y los metadatos de los rastros disponibles dentro de un período de tiempo determinado.aws xray get-trace-summaries \ --start-time
1568835392.0
\ --end-time1568835446.0
Salida:
[ "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/move/VSAE93HF/GSSD2NTB/DP0PCC09", "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/move/GCQ2B35P/FREELDFT/4LRE643M", "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/game/VSAE93HF/GSSD2NTB/starttime/1568835513", "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/move/4MQNA5NN/L99KK2RF/null" ]
Para obtener más información, consulte Using the AWS X-Ray API with the AWS CLI en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte GetTraceSummaries
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar put-encryption-config
.
- AWS CLI
-
Para actualizar la configuración de cifrado
El siguiente
put-encryption-config``example updates the encryption configuration for AWS X-Ray data to use the default AWS managed KMS key ``aws/xray
.aws xray put-encryption-config \ --type
KMS
\ --key-idalias/aws/xray
Salida:
{ "EncryptionConfig": { "KeyId": "arn:aws:kms:us-west-2:123456789012:key/c234g4e8-39e9-4gb0-84e2-b0ea215cbba5", "Status": "UPDATING", "Type": "KMS" } }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte PutEncryptionConfig
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar put-trace-segments
.
- AWS CLI
-
Para cargar un segmento
En el siguiente ejemplo de
put-trace-segments
, se cargan documentos segmentados a AWS X-Ray. El documento segmentado se consume como una lista de documentos segmentados JSON.aws xray put-trace-segments \ --trace-segment-documents "{\"id\":\"20312a0e2b8809f4\",\"name\":\"DynamoDB\",\"trace_id\":\"1-5832862d-a43aafded3334a971fe312db\",\"start_time\":1.479706157195E9,\"end_time\":1.479706157202E9,\"parent_id\":\"79736b962fe3239e\",\"http\":{\"response\":{\"content_length\":60,\"status\":200}},\"inferred\":true,\"aws\":{\"consistent_read\":false,\"table_name\":\"scorekeep-session-xray\",\"operation\":\"GetItem\",\"request_id\":\"SCAU23OM6M8FO38UASGC7785ARVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-session-xray\"]},\"origin\":\"AWS::DynamoDB::Table\"}"
Salida:
{ "UnprocessedTraceSegments": [] }
Para obtener más información, consulte Sending Trace Data to AWS X-Ray en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte PutTraceSegments
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar update-group
.
- AWS CLI
-
Para actualizar un grupo
En el siguiente ejemplo de
update-group
, se actualizan los criterios para aceptar los rastros en el grupo denominadoAdminGroup
. Puede especificar el grupo deseado mediante el nombre del grupo o el ARN del grupo.aws xray update-group \ --group-name
"AdminGroup"
\ --group-arn"arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789"
\ --filter-expression "service(\"mydomain.com\") {fault}"Salida:
{ "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-east-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault}" }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información sobre la API, consulte UpdateGroup
en la Referencia de comandos de la AWS CLI.
-
En el siguiente ejemplo de código, se muestra cómo utilizar update-sampling-rule
.
- AWS CLI
-
Para actualizar una regla de muestreo
En el siguiente ejemplo de
update-sampling-rule
, se modifica la configuración de una regla de muestreo. Las reglas se consumen desde un archivo JSON. Solo son obligatorios los campos que se están actualizando.aws xray update-sampling-rule \ --cli-input-json
file://1000-default.json
Contenido de
1000-default.json
:{ "SamplingRuleUpdate": { "RuleName": "Default", "FixedRate": 0.01, "ReservoirSize": 0 } }
Salida:
{ "SamplingRuleRecords": [ { "SamplingRule": { "RuleName": "Default", "RuleARN": "arn:aws:xray:us-west-2:123456789012:sampling-rule/Default", "ResourceARN": "*", "Priority": 10000, "FixedRate": 0.01, "ReservoirSize": 0, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 0.0, "ModifiedAt": 1529959993.0 } ] }
Para obtener más información, consulte Configuring Sampling, Groups, and Encryption Settings with the AWS X-Ray API en la Guía para desarrolladores de AWS X-Ray.
-
Para obtener información acerca de la API, consulte UpdateSamplingRule
en la Referencia de comandos de la AWS CLI.
-