Correlation Runtime Controls
Tune internals of cross-platform correlation matching, sweeps, and metrics naming.
Execution Toggle
ExecuteOriginalScenarioRun controls whether the original scenario run delegate executes alongside tracking runtime in wrapped scenarios.
Timeout Sweep Settings
TimeoutSweepInterval controls how often timeout scans run, and TimeoutBatchSize controls how many pending items are processed per sweep cycle. Public SDK helpers also expose sweepTimeoutEntries(...) for detailed timeout batches and preserve FIFO matching across repeated tracking ids. Time durations must be positive when set through endpoint/config contracts.
Metric Prefix
MetricPrefix controls the naming prefix of tracking counters and gauges written to the Metrics report section and realtime sinks.
Store TTL
When using Redis correlation store, RedisCorrelationStoreOptions.EntryTtl controls retention duration of correlation entries.
Feature Usage Samples
How to use snippets for Correlation Runtime Controls.
Switch between C#, Java, Python, TypeScript, and JavaScript to see the native SDK shape for this sample.
Licensing note: every runnable sample requires a valid runner key via WithRunnerKey("...") or config key LoadStrike:RunnerKey.
Runtime Controls
var tracking = new CrossPlatformTrackingConfiguration
{
Source = source,
Destination = destination,
RunMode = TrackingRunMode.GenerateAndCorrelate,
CorrelationTimeout = TimeSpan.FromSeconds(15),
TimeoutSweepInterval = TimeSpan.FromMilliseconds(250),
TimeoutBatchSize = 200,
TimeoutCountsAsFailure = true,
MetricPrefix = "orders_tracking",
CorrelationStore = CorrelationStoreConfiguration.RedisStore(new RedisCorrelationStoreOptions
{
ConnectionString = "localhost:6379",
KeyPrefix = "loadstrike:orders",
EntryTtl = TimeSpan.FromMinutes(5)
})
};
import com.loadstrike.runtime.CorrelationStoreConfiguration;
import com.loadstrike.runtime.CrossPlatformTrackingConfiguration;
import com.loadstrike.runtime.RedisCorrelationStoreOptions;
import com.loadstrike.runtime.LoadStrikeTransports;
var redis = new RedisCorrelationStoreOptions();
redis.connectionString = "localhost:6379";
redis.keyPrefix = "loadstrike:orders";
redis.entryTtl = java.time.Duration.ofMinutes(5);
var tracking = new CrossPlatformTrackingConfiguration();
tracking.source = source;
tracking.destination = destination;
tracking.runMode = LoadStrikeTransports.TrackingRunMode.GenerateAndCorrelate;
tracking.correlationTimeoutSeconds = 15d;
tracking.timeoutSweepIntervalSeconds = 0.25d;
tracking.timeoutBatchSize = 200;
tracking.timeoutCountsAsFailure = true;
tracking.metricPrefix = "orders_tracking";
tracking.correlationStore = CorrelationStoreConfiguration.RedisStore(redis);
from loadstrike_sdk import CorrelationStoreConfiguration, RedisCorrelationStoreOptions
tracking = {
"Source": source,
"Destination": destination,
"RunMode": "GenerateAndCorrelate",
"CorrelationTimeoutSeconds": 15,
"TimeoutSweepIntervalSeconds": 0.25,
"TimeoutBatchSize": 200,
"TimeoutCountsAsFailure": True,
"MetricPrefix": "orders_tracking",
"CorrelationStore": CorrelationStoreConfiguration.redis_store(
RedisCorrelationStoreOptions(
connection_string="localhost:6379",
key_prefix="loadstrike:orders",
entry_ttl_seconds=300,
)
),
}
import {
CorrelationStoreConfiguration,
RedisCorrelationStoreOptions
} from "@loadstrike/loadstrike-sdk";
const redisOptions = new RedisCorrelationStoreOptions();
redisOptions.ConnectionString = "localhost:6379";
redisOptions.KeyPrefix = "loadstrike:orders";
redisOptions.EntryTtlSeconds = 300;
const tracking = {
Source: source,
Destination: destination,
RunMode: "GenerateAndCorrelate",
CorrelationTimeoutSeconds: 15,
TimeoutSweepIntervalSeconds: 0.25,
TimeoutBatchSize: 200,
TimeoutCountsAsFailure: true,
MetricPrefix: "orders_tracking",
CorrelationStore: CorrelationStoreConfiguration.RedisStore(redisOptions)
};
const {
CorrelationStoreConfiguration,
RedisCorrelationStoreOptions
} = require("@loadstrike/loadstrike-sdk");
const redisOptions = new RedisCorrelationStoreOptions();
redisOptions.ConnectionString = "localhost:6379";
redisOptions.KeyPrefix = "loadstrike:orders";
redisOptions.EntryTtlSeconds = 300;
const tracking = {
Source: source,
Destination: destination,
RunMode: "GenerateAndCorrelate",
CorrelationTimeoutSeconds: 15,
TimeoutSweepIntervalSeconds: 0.25,
TimeoutBatchSize: 200,
TimeoutCountsAsFailure: true,
MetricPrefix: "orders_tracking",
CorrelationStore: CorrelationStoreConfiguration.RedisStore(redisOptions)
};
Controls
Defines how long a source event can wait for a destination match before it is treated as timed out.
Controls how often the runtime scans pending correlation entries for expired matches.
Limits how many expired correlation entries are processed in one timeout sweep.
Decides whether timed-out matches should increment failure counts in stats and reports.
Prefixes the correlation counters and gauges that show up in metrics and sink projections.
Explicit timeout and poll values must be positive whenever they are set directly.