Offloading analytics data to AWS X-Ray exporter
Configure the DataPower Interact Gateway Collector to export distributed tracing data to AWS X-Ray for application performance monitoring.
Before you begin
Make sure
- you have an AWS account with X-Ray enabled.
- you have created an IAM role with permissions to write to AWS X-Ray.
- you have the AWS region and role ARN for X-Ray access.
About this task
The AWS X-Ray exporter sends distributed tracing data from the OpenTelemetry Collector to AWS X-Ray for visualization and analysis of application performance.
Procedure
-
Identify the namespace where the collector is deployed.
kubectl get nsSample output:
NAME STATUS AGE default Active 5h6m fyre-ci-293280 Active 5h2mNote: Lists all namespaces and their deployments, including the DataPower Interact Gateway. In this example,fyre-ci-293280is the namespace in which the DataPower Interact Gateway is deployed. -
Create a Kubernetes secret containing the AWS X-Ray configuration.
kubectl create secret generic aws-credentials \ --from-literal=AWS_REGION='us-east-1' \ --from-literal=AWS_ROLE_ARN='arn:aws:iam::123456789012:role/OTelXRayRole' \ -n <namespace>Important: Replaceus-east-1andarn:aws:iam::123456789012:role/OTelXRayRolewith your actual AWS region and IAM role ARN.Output:
secret/aws-credentials created -
Verify that the secret was created successfully.
kubectl get secret aws-credentials -n <namespace> -
Identify the collector deployment.
kubectl get deployment -n <namespace> | grep collectorSample output:
idig-nanogw-nanogw-analytics-collector 1/1 1 1 5h -
Edit the collector deployment to inject the secret as environment variables.
kubectl edit deployment <deployment_name> -n <namespace>-
Locate the
containerssection for theanalytics-collectorcontainer. -
Add the following
envFromsection under the container definition:envFrom: - secretRef: name: aws-credentials -
Save and exit the editor.
Sample deployment configuration:
apiVersion: apps/v1 kind: Deployment metadata: name: idig-nanogw-nanogw-analytics-collector namespace: <namespace> spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: nanogw-analytics-collector template: metadata: labels: app.kubernetes.io/name: nanogw-analytics-collector spec: containers: - name: analytics-collector image: your-image:tag envFrom: - secretRef: name: aws-credentials
-
Locate the
-
Identify the collector ConfigMap.
kubectl get configmap -n <namespace> | grep collectorSample output:
idig-nanogw-collector-config 1 5h11m -
Edit the collector ConfigMap to add the AWS X-Ray exporter configuration.
kubectl edit configmap <configmap_name> -n <namespace>-
Add the following exporter configuration under the
exporterssection:exporters: awsxray: region: '${AWS_REGION}' role_arn: '${AWS_ROLE_ARN}' -
Update the service pipelines to include the AWS X-Ray exporter:
service: pipelines: traces/xray: receivers: [otlp] processors: [batch/apic] exporters: [awsxray] -
Save the ConfigMap.
Sample ConfigMap structure:
apiVersion: v1 kind: ConfigMap metadata: name: idig-nanogw-collector-config namespace: <namespace> data: config.yaml: | receivers: ... processors: batch/apic: ... exporters: awsxray: region: '${AWS_REGION}' role_arn: '${AWS_ROLE_ARN}' service: pipelines: traces/xray: receivers: [otlp] processors: [batch/apic] exporters: [awsxray]
-
Add the following exporter configuration under the
-
Restart the collector deployment to apply the changes.
kubectl rollout restart deployment <deployment_name> -n <namespace>Output:
deployment.apps/idig-nanogw-nanogw-analytics-collector restarted -
Verify that the collector pods restart successfully.
kubectl get pods -n <namespace> | grep collectorSample output:
idig-nanogw-nanogw-analytics-collector-7d4f8ccf45-bk468 1/1 Running 0 30sThe OpenTelemetry Collector is now configured to export distributed tracing data to AWS X-Ray. Traces will be sent to your AWS X-Ray service for analysis and visualization.