bursty cycle rate test online

This commit is contained in:
Jonathan Shook
2023-10-11 22:51:52 -05:00
parent 32b13c0134
commit bff86b5525
42 changed files with 500 additions and 440 deletions

View File

@@ -81,9 +81,16 @@ public class SimRate extends NBBaseComponent implements RateLimiter, Thread.Unca
public SimRate(NBComponent parent, SimRateSpec spec) {
super(parent, NBLabels.forKV());
this.spec = spec;
initMetrics();
startFiller();
}
private void initMetrics() {
create().gauge("cycles_waittime",() -> (double)getWaitTimeDuration().get(ChronoUnit.NANOS));
create().gauge("_config_cyclerate", () -> spec.opsPerSec);
create().gauge("_config_burstrate", () -> spec.burstRatio);
}
public long refill() {
try {

View File

@@ -116,7 +116,7 @@ public class SimpleActivity extends NBBaseComponent implements Activity {
@Override
public synchronized void initActivity() {
// initOrUpdateRateLimiters(this.activityDef);
initOrUpdateRateLimiters(this.activityDef);
}
public synchronized NBErrorHandler getErrorHandler() {
@@ -307,7 +307,6 @@ public class SimpleActivity extends NBBaseComponent implements Activity {
public synchronized void initOrUpdateRateLimiters(ActivityDef activityDef) {
activityDef.getParams().getOptionalNamedParameter("striderate")
.map(StrideRateSpec::new).ifPresent(sr -> this.onEvent(new ParamChange<>(sr)));

View File

@@ -43,7 +43,7 @@ public class ScriptEnvBuffer extends SimpleScriptContext {
synchronized(this) {
if (stdoutBuffer==null) {
Writer superWriter = super.getWriter();
stdoutBuffer = new DiagWriter(superWriter, new InterjectingCharArrayWriter(" stdout "));
stdoutBuffer = new DiagWriter(new InterjectingCharArrayWriter(" stdout "),superWriter);
}
}
}
@@ -56,7 +56,7 @@ public class ScriptEnvBuffer extends SimpleScriptContext {
synchronized(this) {
if (stderrBuffer==null) {
Writer superErrorWriter = super.getErrorWriter();
stderrBuffer = new DiagWriter(superErrorWriter, new InterjectingCharArrayWriter(" stderr "));
stderrBuffer = new DiagWriter(new InterjectingCharArrayWriter(" stderr "),superErrorWriter);
}
}
}