Skip to content

Aspire-based load testing harness - #5830

Draft
rbev wants to merge 13 commits into
masterfrom
rhys/load-tool
Draft

Aspire-based load testing harness#5830
rbev wants to merge 13 commits into
masterfrom
rhys/load-tool

Conversation

@rbev

@rbev rbev commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

This pull request introduces a new ServiceControl testing tool, including its CI workflow, build configuration, containerization, and orchestration with an observability stack and platform services. The tool is a service designed to generate error load and real-world failure scenarios for ServiceControl, with built-in OpenTelemetry instrumentation and a web UI for controlling load. The changes lay out the tool’s structure, containerization, CI integration, and orchestration via Aspire.

Testing Tool Introduction and Documentation:

  • Added a multi-stage Dockerfile to build and package the testing tool as a container image, using the same chiseled .NET base as the rest of the ServiceControl platform for consistency and minimal runtime footprint.
  • Added a new GitHub Actions workflow (.github/workflows/testing-tool-ci.yml) to build the testing tool on pushes and pull requests, including solution build, Aspire AppHost build, and container image build steps.

Platform Orchestration and Observability:

  • Added TestingTool.AppHost project files (AppHost.cs, CliOptions.cs, HostBuilderExtensions.cs) to orchestrate the testing tool alongside ServiceControl, ServicePulse and the other required dependencies, along with a full observability stack (OTel Collector, Jaeger, Prometheus, Grafana) using Aspire. These files provide extension points for persistence selection and command-line configuration.

@rbev rbev changed the title Rhys/load tool Aspire-based load testing harness Aug 28, 2026
rbev and others added 3 commits August 28, 2026 12:16
…out improvements

Adds a ServiceControl instance variable to filter metrics by exported_job, reorganises panels into labelled rows, and adds a full set of ingestion observability panels covering throughput stats, latency percentiles, batch health, storage duration, failure disposition, and a duration heatmap. Also replaces hardcoded 1m rate windows with $__rate_interval throughout.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants