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
kubectlorocCLI 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.yamlwith 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