rustyrazorblade opened a new pull request, #53:
URL: https://github.com/apache/cassandra-easy-stress/pull/53
This commit introduces a comprehensive MCP server implementation that
enables AI assistants to interact with cassandra-easy-stress through a
standardized protocol. The server provides tools for managing stress tests,
monitoring performance metrics, and controlling test execution.
Key Features:
- MCP server with SSE (Server-Sent Events) support using Ktor
- Six fully functional tools:
* list_profiles: Lists all available workload profiles
* info: Provides detailed profile information including schema
* fields: Lists all available field generators
* run: Executes stress tests in separate threads with full parameter
support
* status: Reports real-time metrics (throughput, latency, errors)
* stop: Gracefully terminates running stress tests
Implementation Details:
- Thread-safe execution with single-instance enforcement for stress tests
- Real-time metrics integration showing:
* Throughput (ops/sec) for selects, mutations, deletions
* Latency percentiles (mean, median, p95, p99, p999, max)
* Error rates (count, mean rate, 1/5/15 minute rates)
* Operation counts and elapsed time
- JCommanderFieldExtractor utility for dynamic parameter introspection
- Comprehensive test suite with 17 tests covering all functionality
Technical Stack:
- Kotlin MCP SDK (0.7.2) for protocol implementation
- Ktor (3.3.0) for HTTP server and SSE support
- kotlin-reflect for runtime parameter extraction
- Atomic variables for thread-safe state management
Testing:
- Full test coverage for all MCP tools
- Field extraction tests for JCommander integration
- Thread safety and single-instance enforcement tests
- Status reporting with metrics validation
This enables AI-powered automation and monitoring of Cassandra stress
testing workflows through a standardized interface.
Closes #42
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]