Comprehensive test suite for distributed tracing components, focused on OpenTelemetry (OTel), Jaeger, and Tempo tracing backends. Provides end-to-end testing scenarios, configuration blueprints, and validation scripts for distributed tracing deployments in Kubernetes/OpenShift environments.
- Kubernetes or OpenShift cluster
- Chainsaw testing framework
- OpenTelemetry Operator
kubectl
oroc
CLI configured
# Run all OpenTelemetry component tests
chainsaw test --test-dir tests/e2e-otel/
# Run specific component test
chainsaw test --test-dir tests/e2e-otel/filelog/
# Run disconnected environment tests
chainsaw test --test-dir tests/e2e-disconnected/
# Run performance/scale tests
chainsaw test --test-dir tests/perfscale-ui-query/
# Run security/SDL tests
chainsaw test --test-dir tests/e2e-rh-sdl/
# Build test container
docker build -t distributed-tracing-qe .
# Build Konflux variant
docker build -f Dockerfile-konflux -t distributed-tracing-qe-konflux .
End-to-end tests for individual OpenTelemetry Collector components:
Receivers
filelog
- File-based log collectionhostmetricsreceiver
- Host system metricsk8sclusterreceiver
- Kubernetes cluster metricsk8seventsreceiver
- Kubernetes eventskubeletstatsreceiver
- Kubelet statisticsk8sobjectsreceiver
- Kubernetes object monitoringjournaldreceiver
- systemd journal logsotlpjsonfilereceiver
- OTLP JSON file input
Processors
transformprocessor
- Data transformationfilterprocessor
- Data filteringgroupbyattrsprocessor
- Attribute groupingtailsamplingprocessor
- Intelligent samplingprobabilisticsamplerprocessor
- Probabilistic sampling
Exporters
prometheusremotewriteexporter
- Prometheus integrationawsxrayexporter
- AWS X-Ray integrationawscloudwatchlogsexporter
- AWS CloudWatch logsloadbalancingexporter
- Load balanced exportgooglemanagedprometheus
- Google Cloud monitoring
Connectors
routingconnector
- Data routingforwardconnector
- Data forwardingcountconnector
- Metric generation
Extensions
oidcauthextension
- OIDC authenticationfilestorageext
- File-based storage
Tests for air-gapped/disconnected environments:
compatibility
- Backend compatibility testingjaeger-otel-sidecar
- Jaeger with OTel sidecarmonolithic-multitenancy-openshift
- Multi-tenant deploymentsmultitenancy
- Multi-tenant scenariosotlp-metrics-traces
- OTLP metrics and tracessmoke-targetallocator
- Target allocator smoke tests
Red Hat Security Development Lifecycle tests:
rapidast-jaeger
- Security testing for Jaegerrapidast-otel
- Security testing for OpenTelemetryrapidast-tempo
- Security testing for Tempo
Performance and scalability validation:
perfscale-sizing-recommendation
- Sizing recommendationsperfscale-ui-query
- UI query performance testing
Each component test follows this pattern:
component-name/
├── README.md # Component documentation
├── chainsaw-test.yaml # Test definition
├── otel-collector.yaml # OTel Collector configuration
├── *-assert.yaml # Assertion files for validation
├── check_*.sh # Verification scripts
└── additional resources... # Supporting manifests
- Chainsaw - Test orchestration framework
- OpenTelemetry Operator - Manages OTel Collector deployments
- Tempo - Distributed tracing backend (Grafana)
- Jaeger - Distributed tracing backend (legacy/compatibility)
- Kubernetes/OpenShift - Container orchestration platforms
Tests include shell scripts that:
- Query collector pods for expected log patterns
- Verify trace data in backend systems
- Validate metrics collection and export
- Check component-specific functionality
Scripts use kubectl
commands with retry logic for eventual consistency.
- Create component directory under appropriate test category
- Follow established naming patterns
- Include
chainsaw-test.yaml
with test steps - Add verification scripts for validation
- Document component purpose in
README.md
- Use Chainsaw assert blocks for resource validation
- Implement timeout-based verification for async operations
- Include positive and negative test cases
- Verify component logs for expected behavior
- Tests use specific OTel Collector image versions
- Cloud integrations require credential management
- Test containers include necessary CLI tools
Test directories provide production-ready configuration examples for:
- RBAC setup and permissions
- Resource management and limits
- Data processing pipelines
- Monitoring integration
- Security and authentication
Metrics Collection
- Infrastructure:
hostmetricsreceiver
,kubeletstatsreceiver
- Application:
k8sclusterreceiver
,k8sobjectsreceiver
- Export:
prometheusremotewriteexporter
,googlemanagedprometheus
Log Management
- Collection:
filelog
,journaldreceiver
- Processing:
transformprocessor
,filterprocessor
- Export:
awscloudwatchlogsexporter
Distributed Tracing
- Collection:
otlpjsonfilereceiver
- Processing:
tailsamplingprocessor
,groupbyattrsprocessor
- Export:
awsxrayexporter
,loadbalancingexporter
- Follow established directory structure
- Include comprehensive documentation
- Provide example configurations
- Add verification scripts and assertions
- Document component-specific considerations