diff --git a/.github/workflows/publish-central.yml b/.github/workflows/publish-central.yml index f1f608a..79d2d8e 100644 --- a/.github/workflows/publish-central.yml +++ b/.github/workflows/publish-central.yml @@ -79,7 +79,7 @@ jobs: name: publish the existing candidate needs: [provenance] runs-on: ubuntu-latest - timeout-minutes: 15 + timeout-minutes: 35 environment: name: central-validation url: https://central.sonatype.com/publishing/deployments @@ -99,6 +99,7 @@ jobs: import time import urllib.error import urllib.request + import xml.etree.ElementTree as ET version = os.environ['VERSION'] deployment = os.environ['DEPLOYMENT_ID'] @@ -127,22 +128,38 @@ jobs: assert status['deploymentName'] == 'io.github.chomingi:langfuse-otel-java:' + version, 'Unexpected deployment name' expected = {'pkg:maven/io.github.chomingi/' + artifact + '@' + version for artifact in ('langfuse-otel-java', 'langfuse-otel-core', 'langfuse-otel-spring-boot-starter')} - assert expected.issubset(set(status.get('purls', []))), 'Missing expected Maven coordinates' state = status['deploymentState'] + print('Central state:', state, 'coordinates:', status.get('purls', []), flush=True) if state == 'VALIDATED': + coordinates = {purl.split('?', 1)[0].split('#', 1)[0] for purl in status.get('purls', [])} + assert expected.issubset(coordinates), 'Missing expected Maven coordinates' post('/deployment/' + deployment) elif state not in ('PUBLISHING', 'PUBLISHED'): raise SystemExit('Refusing to publish state ' + state) - deadline = time.monotonic() + 600 + deadline = time.monotonic() + 1800 while state != 'PUBLISHED': if time.monotonic() >= deadline: raise SystemExit('Publication is still pending; inspect this deployment before retrying.') time.sleep(15) status = post('/status?id=' + deployment) state = status['deploymentState'] + print('Central state:', state, flush=True) if state not in ('VALIDATED', 'PUBLISHING', 'PUBLISHED'): raise SystemExit('Unexpected publication state ' + state) + + # Verify already-published coordinates from the public POMs. Keep the PURL check before + # publication, and never send Central credentials to the public repository. + ns = {'m': 'http://maven.apache.org/POM/4.0.0'} + for artifact in ('langfuse-otel-java', 'langfuse-otel-core', 'langfuse-otel-spring-boot-starter'): + url = ('https://repo.maven.apache.org/maven2/io/github/chomingi/' + artifact + '/' + + version + '/' + artifact + '-' + version + '.pom') + with client.open(urllib.request.Request(url), timeout=30) as response: + pom = ET.fromstring(response.read()) + group = pom.findtext('m:groupId', namespaces=ns) or pom.findtext('m:parent/m:groupId', namespaces=ns) + pom_version = pom.findtext('m:version', namespaces=ns) or pom.findtext('m:parent/m:version', namespaces=ns) + assert group == 'io.github.chomingi' and pom_version == version, 'Unexpected public POM identity' + assert pom.findtext('m:artifactId', namespaces=ns) == artifact, 'Unexpected public artifact' with open(os.environ['GITHUB_STEP_SUMMARY'], 'a') as summary: summary.write('Maven Central deployment `' + deployment + '` is **PUBLISHED**.\n') summary.write('Verify public consumer resolution before publishing the GitHub draft.\n') diff --git a/CHANGELOG.md b/CHANGELOG.md index d066bdf..9c1c89a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] +### Fixed + +- Verify published Central coordinates through public POMs when resuming publication; retain + validation-time coordinate checks before publishing and allow up to 30 minutes for synchronization. + ## [0.2.2] - 2026-09-25 ### Added diff --git a/OBSERVATION-VALIDATION.md b/OBSERVATION-VALIDATION.md index e82d709..49c6d3b 100644 --- a/OBSERVATION-VALIDATION.md +++ b/OBSERVATION-VALIDATION.md @@ -186,3 +186,9 @@ The release retains that update and aligns the observation consumer and SDK test The September 23–24 evidence above remains evidence for 1.62.0; it must not be relabeled as 1.66.0 performance evidence. Release CI reruns contracts, consumer tests and Langfuse read-back with 1.66.0. The optional sustained-load workflow records its actual runtime separately. + +The exact 0.2.2 release commit subsequently passed the hosted Java 17/Linux two-hour profile with +OpenTelemetry 1.66.0: 21,600,000 measured observations, no loss in NORMAL windows, all intentional +fault/overload losses accounted for, and no retained sampled observations. The public core JAR's +SHA-256 matches the tested JAR. See [RELEASE-0.2.2.md](RELEASE-0.2.2.md) for release CI, read-back, +public consumer checks, runtime conditions and the preserved measurement JSON. diff --git a/RELEASE-0.2.2.md b/RELEASE-0.2.2.md new file mode 100644 index 0000000..f8d2d55 --- /dev/null +++ b/RELEASE-0.2.2.md @@ -0,0 +1,79 @@ +# 0.2.2 release audit + +Release commit: `bef979f3f0238daf500da6998a07a1bd3f3b08c8`. +GitHub-verified signed tag: `v0.2.2`, tag object `ce5b47912215fe94cb5e5743590df23ee512d410`. +OpenTelemetry: `1.66.0`. Existing fluent APIs and starter defaults remain supported. + +## Release gates + +| Gate | Evidence | +|---|---| +| PR CI | [36120540570](https://github.com/ChoMinGi/langfuse-otel-java/actions/runs/36120540570) | +| Exact main commit CI | [36120934747](https://github.com/ChoMinGi/langfuse-otel-java/actions/runs/36120934747) | +| Signed-tag release gates and Central validation | [36125603878](https://github.com/ChoMinGi/langfuse-otel-java/actions/runs/36125603878) | +| Hosted sustained-load profile | [36120945616](https://github.com/ChoMinGi/langfuse-otel-java/actions/runs/36120945616) | + +All four runs passed. Checks include Java 11/17/21, supported Spring AI/LangChain4j combinations, +package/Javadoc/coverage/API compatibility, consumers, operational contracts, static analysis, +licenses and the vulnerability gate (zero High/Critical findings at release scan time). +The independent Langfuse 4.41.0 Docker read-back gate passed on both main and the signed tag; +the optional shared-project export smoke was skipped and is not counted as read-back evidence. + +## Exact-commit Langfuse read-back + +Four synthetic traces each contained CHAIN root, GENERATION and TOOL observations. Capture-on/off, +hierarchy, metadata search, shared fields and usage were checked. Every observation carried the +full release commit as its version and `0.2.2` as its release. Main CI trace IDs: + +- Explicit API, capture on: `ff45f65b2f84285c301971c154f7868b` +- Explicit API, capture off: `922cbc6a1a2e9d95cfc1fe7037b55a37` +- Raw helpers, capture on: `512f4091223f940b17ccf882259d95b0` +- Raw helpers, capture off: `5322055fe5fec1ca73bf3f14959a80b8` + +## Release artifact load validation + +Hosted Ubuntu/Linux amd64, Java `17.0.20.1+1`, four available processors, 128–512 MiB JVM heap, +32 producer threads, two owned SDK batch workers, fixed 1 KiB input/output and 3,000 offered ops/s. +Ten-minute warmup followed by `7,200.03646041` measured seconds across 24 windows. +The full run took `7,889.848130994` monotonic seconds; maximum wall/monotonic divergence was 1 ms. + +| Receiver | Observations | Failed export spans | Queue drops | Window p99 recording latency | +|---|---:|---:|---:|---:| +| NORMAL, 60 minutes | 10,800,000 | 0 | 0 | 15.791–17.663 µs | +| 503, 30 minutes | 5,400,000 | 115,200 | 5,273,536 | 15.247–16.319 µs | +| SLOW 200 ms, 30 minutes | 5,400,000 | 0 | 876,064 | 13.095–17.647 µs | + +All 21,600,000 observations were accounted for: 15,335,200 accepted including recovery/drain, +115,200 failed exports and 6,149,600 bounded-queue drops. Queue loss is intentional under the +injected faults/overload; this is not durable or exactly-once delivery. Post-GC live heap ranged +11.23–11.51 MiB, idle JVM thread count stayed at 53, and all 768 sampled ended observations were +collectible. Percentiles cover producer recording calls, excluding pacing, flush and networking. +This is one controlled receiver configuration, not a maximum-throughput, Langfuse capacity or +universal leak-free guarantee. It must not be compared directly with the earlier macOS/1.62.0 run. + +[Raw measurements](experiments/core-operations/evidence/2026-09-25-release/load-soak.json) and +[validated summary](experiments/core-operations/evidence/2026-09-25-release/load-soak-summary.json) +are preserved in the repository. + +## Maven Central verification + +Deployment: `dd04b703-820b-4368-8cf9-252f0893506d`. +The upload included the signed parent POM, both module artifacts/sources/Javadocs and signed +CycloneDX SBOM. Public coordinates were resolved on 2026-09-25 UTC into a new temporary Maven +repository without installing the local reactor. The published artifacts passed Spring AI consumer +(2 tests), LangChain4j consumer (2 tests) and explicit observation consumer (5 tests). + +The published core JAR SHA-256 exactly matches the JAR used in the hosted two-hour run: + +```text +0ecd199be1066fbb0f9e80befdeb2ee6d40933e7e997f3a5bbfa253632f96c4a +``` + +The initial publication status poll exceeded ten minutes. Resuming exposed an overly strict +assumption that validation-time PURLs would be unchanged after publication. The publication workflow +now retains the prepublication PURL check, verifies already-published coordinates through public +POMs, and allows thirty minutes for synchronization. No artifact was rebuilt or re-uploaded. + +See the [GitHub release](https://github.com/ChoMinGi/langfuse-otel-java/releases/tag/v0.2.2), +[core artifact](https://central.sonatype.com/artifact/io.github.chomingi/langfuse-otel-core/0.2.2) +and [starter artifact](https://central.sonatype.com/artifact/io.github.chomingi/langfuse-otel-spring-boot-starter/0.2.2). diff --git a/RELEASING.md b/RELEASING.md index d5e2261..ef212a5 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -232,8 +232,9 @@ Alternatively, a maintainer can dispatch **Publish validated Central candidate** rebuild artifacts or upload another bundle. Before credentials are exposed it verifies the signed tag, main ancestry, successful release run containing that deployment ID, and a successful sustained-load run for the exact release commit. It then checks the Central deployment name and Maven coordinates, -publishes only a validated candidate, and waits for `PUBLISHED`. A retry can resume polling an -already-publishing/published candidate. Public consumer resolution and GitHub draft publication remain +publishes only a validated candidate, and waits up to 30 minutes for `PUBLISHED`. A retry can resume polling an +already-publishing/published candidate. Published coordinates are checked independently through public POMs; +Central authentication headers are never sent to the public repository. Public consumer resolution and GitHub draft publication remain separate final steps. ```bash diff --git a/ROADMAP.md b/ROADMAP.md index 5e31427..63ce19b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -40,7 +40,8 @@ release gates in [RELEASING.md](RELEASING.md). Phase-0 evidence: [CORE-PREFLIGHT.md](CORE-PREFLIGHT.md). API contract: [OBSERVATION-API.md](OBSERVATION-API.md). Implementation and operational evidence: [OBSERVATION-VALIDATION.md](OBSERVATION-VALIDATION.md). -Release publication follows the gated process in [RELEASING.md](RELEASING.md). +Published artifacts are available from Maven Central. See the [release audit](RELEASE-0.2.2.md). +Development continues on `0.2.3-SNAPSHOT`, with API compatibility checked against `0.2.2`. ## Deferred — Spring Boot 4 adapter line diff --git a/consumer-tests/core-observation-consumer/pom.xml b/consumer-tests/core-observation-consumer/pom.xml index 18db621..7e24636 100644 --- a/consumer-tests/core-observation-consumer/pom.xml +++ b/consumer-tests/core-observation-consumer/pom.xml @@ -10,7 +10,7 @@ UTF-8 11 - 0.2.2 + 0.2.3-SNAPSHOT 5.9.3 diff --git a/consumer-tests/core-prompt-consumer/pom.xml b/consumer-tests/core-prompt-consumer/pom.xml index f1b43cb..4d46b9e 100644 --- a/consumer-tests/core-prompt-consumer/pom.xml +++ b/consumer-tests/core-prompt-consumer/pom.xml @@ -10,7 +10,7 @@ UTF-8 11 - 0.2.2 + 0.2.3-SNAPSHOT 5.9.3 diff --git a/consumer-tests/langchain4j-spring-boot-consumer/pom.xml b/consumer-tests/langchain4j-spring-boot-consumer/pom.xml index 9f2ecaa..1badab5 100644 --- a/consumer-tests/langchain4j-spring-boot-consumer/pom.xml +++ b/consumer-tests/langchain4j-spring-boot-consumer/pom.xml @@ -17,7 +17,7 @@ 17 4.1.138.Final 10.1.59 - 0.2.2 + 0.2.3-SNAPSHOT 1.0.0 1.3.2-alpha diff --git a/consumer-tests/spring-boot-consumer/pom.xml b/consumer-tests/spring-boot-consumer/pom.xml index dbaf59c..2dad380 100644 --- a/consumer-tests/spring-boot-consumer/pom.xml +++ b/consumer-tests/spring-boot-consumer/pom.xml @@ -17,7 +17,7 @@ 17 4.1.138.Final 10.1.59 - 0.2.2 + 0.2.3-SNAPSHOT 1.0.9 1.3.2-alpha diff --git a/examples/langchain4j-example/pom.xml b/examples/langchain4j-example/pom.xml index f87af79..4a1ca8c 100644 --- a/examples/langchain4j-example/pom.xml +++ b/examples/langchain4j-example/pom.xml @@ -18,7 +18,7 @@ 4.1.138.Final 10.1.59 2.21.5 - 0.2.2 + 0.2.3-SNAPSHOT diff --git a/examples/spring-ai-example/pom.xml b/examples/spring-ai-example/pom.xml index 14ab220..e52ae9d 100644 --- a/examples/spring-ai-example/pom.xml +++ b/examples/spring-ai-example/pom.xml @@ -18,7 +18,7 @@ 4.1.138.Final 10.1.59 2.21.5 - 0.2.2 + 0.2.3-SNAPSHOT diff --git a/experiments/core-operations/evidence/2026-09-25-release/load-soak-summary.json b/experiments/core-operations/evidence/2026-09-25-release/load-soak-summary.json new file mode 100644 index 0000000..0b3b59d --- /dev/null +++ b/experiments/core-operations/evidence/2026-09-25-release/load-soak-summary.json @@ -0,0 +1,82 @@ +{ + "file": "experiments/core-operations/target/operations/load-soak.json", + "clockChecksPassed": true, + "groups": [ + { + "recording": "body", + "receiver": "NORMAL", + "concurrency": 32, + "samples": 12, + "operations": 10800000, + "measuredSeconds": 3600.0195664479998, + "opsPerSecond": 2999.983694715288, + "p99MicrosRange": [ + 15.791, + 17.663 + ], + "producerBytesPerOp": 2152.0022755555556, + "postGcHeapBytesRange": [ + 11780160, + 12066360 + ], + "threadCountRange": [ + 53, + 53 + ], + "queueDrops": 0, + "failedExportSpans": 0 + }, + { + "recording": "body", + "receiver": "UNAVAILABLE", + "concurrency": 32, + "samples": 6, + "operations": 5400000, + "measuredSeconds": 1800.008558947, + "opsPerSecond": 2999.9857351561623, + "p99MicrosRange": [ + 15.247, + 16.319 + ], + "producerBytesPerOp": 2152.0484533333333, + "postGcHeapBytesRange": [ + 12034248, + 12062168 + ], + "threadCountRange": [ + 53, + 53 + ], + "queueDrops": 5273536, + "failedExportSpans": 115200 + }, + { + "recording": "body", + "receiver": "SLOW", + "concurrency": 32, + "samples": 6, + "operations": 5400000, + "measuredSeconds": 1800.008335015, + "opsPerSecond": 2999.986108372659, + "p99MicrosRange": [ + 13.095, + 17.647 + ], + "producerBytesPerOp": 2152.0022755555556, + "postGcHeapBytesRange": [ + 12028656, + 12064240 + ], + "threadCountRange": [ + 53, + 53 + ], + "queueDrops": 876064, + "failedExportSpans": 0 + } + ], + "measurementSecondsRequested": 7200, + "warmupSecondsRequested": 600, + "twoHourProfileCompleted": true, + "note": "p99 range is across windows, not a merged percentile. Allocation is producer-thread only." +} diff --git a/experiments/core-operations/evidence/2026-09-25-release/load-soak.json b/experiments/core-operations/evidence/2026-09-25-release/load-soak.json new file mode 100644 index 0000000..cd5e9c9 --- /dev/null +++ b/experiments/core-operations/evidence/2026-09-25-release/load-soak.json @@ -0,0 +1,830 @@ +{ + "environment" : { + "startedAt" : "2026-09-25T09:54:49.402096617Z", + "java" : "17.0.20.1+1", + "vm" : "OpenJDK 64-Bit Server VM", + "os" : "Linux 6.17.0-1022-azure", + "arch" : "amd64", + "processors" : 4, + "maxHeapBytes" : 536870912, + "vmArguments" : [ "-Xms128m", "-Xmx512m" ], + "profile" : "soak", + "allocationSupported" : true, + "clockDivergenceLimitMillis" : 2000, + "prestartedWorkerThreads" : 32, + "executedClassSha256" : { + "io.github.chomingi.langfuse.otel.LangfuseObservation" : "46eb34df78a253a6ad7b1106ccb154c2f25bdd1063e3a29697ac2e62f1e867cb", + "io.github.chomingi.langfuse.otel.LangfuseOtel" : "7f873e57ad0a8e81b782834a1906397ccffd00994c77c9e95e0692dda5a66382", + "operations.LoadTest" : "60785b1e9ba7d9b263983ed60fc1082093402b342422b4607c63a901fb1f8148", + "operations.LocalOtlpReceiver" : "22817822e6563ba365b7ea5a6d3967d9ae4b39a3daed3c11dd7312ff270c5bd2", + "operations.TimingGuard" : "a8b0ccec04cc91896a9d70c4298f86b719c068cffdc668bc34160c4c92254c70" + }, + "coreArtifactSha256" : "0ecd199be1066fbb0f9e80befdeb2ee6d40933e7e997f3a5bbfa253632f96c4a", + "warmup" : { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 600, + "measuredSeconds" : 600.015778616, + "wallMeasuredSeconds" : 600.016, + "gcCollectionsDuringPhase" : 335, + "gcMillisDuringPhase" : 545, + "targetOpsPerSecond" : 3000, + "operations" : 1799968, + "opsPerSecond" : 2999.8677770638246, + "p50Nanos" : 1788, + "p95Nanos" : 3799, + "p99Nanos" : 9999, + "maxNanos" : 23461887, + "producerAllocatedBytesPerOp" : 2153.770978150723, + "acceptedBeforeRecovery" : 1799968, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 1799968, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 3516, + "postGcLiveHeapBytes" : 11746312, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:04:50.357452088Z" + }, + "finishedAt" : "2026-09-25T12:06:19.250046790Z" + }, + "complete" : true, + "elapsedSeconds" : 7889.848130994, + "wallElapsedSeconds" : 7889.86, + "maxClockDivergenceMillis" : 1, + "measurements" : [ { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.002447448, + "wallMeasuredSeconds" : 300.003, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 254, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9755257196653, + "p50Nanos" : 2321, + "p95Nanos" : 8831, + "p99Nanos" : 17103, + "maxNanos" : 1572863, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 11793560, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:09:50.996632919Z", + "cycle" : 1 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001664333, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 260, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9833567623327, + "p50Nanos" : 2083, + "p95Nanos" : 6943, + "p99Nanos" : 15791, + "maxNanos" : 1203199, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 11785136, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:14:51.637355127Z", + "cycle" : 2 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001489644, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 251, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9851036339674, + "p50Nanos" : 2035, + "p95Nanos" : 6827, + "p99Nanos" : 15847, + "maxNanos" : 1220607, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 11785440, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:19:52.276264068Z", + "cycle" : 3 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001618948, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 254, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.983810607366, + "p50Nanos" : 2039, + "p95Nanos" : 7031, + "p99Nanos" : 16255, + "maxNanos" : 1672191, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 11787632, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:24:52.916659665Z", + "cycle" : 4 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001591527, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 252, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9840848144313, + "p50Nanos" : 2213, + "p95Nanos" : 9199, + "p99Nanos" : 17391, + "maxNanos" : 1337343, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 11780160, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:29:53.554252574Z", + "cycle" : 5 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.002041117, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 256, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.979588968871, + "p50Nanos" : 2099, + "p95Nanos" : 7495, + "p99Nanos" : 16303, + "maxNanos" : 1321983, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 11782360, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:34:54.191843369Z", + "cycle" : 6 + }, { + "recording" : "body", + "receiver" : "UNAVAILABLE", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001622045, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 30, + "gcMillisDuringPhase" : 81, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9837796377005, + "p50Nanos" : 1800, + "p95Nanos" : 7235, + "p99Nanos" : 15407, + "maxNanos" : 3395583, + "producerAllocatedBytesPerOp" : 2152.279342222222, + "acceptedBeforeRecovery" : 0, + "failedSpansBeforeRecovery" : 18944, + "queueDropsBeforeRecovery" : 879008, + "acceptedIncludingDrain" : 2048, + "failedSpansIncludingDrain" : 18944, + "queueDropsIncludingDrain" : 879008, + "httpRequestsIncludingDrain" : 193, + "postGcLiveHeapBytes" : 12052784, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:40:07.153964354Z", + "cycle" : 7 + }, { + "recording" : "body", + "receiver" : "SLOW", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001524077, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 147, + "gcMillisDuringPhase" : 346, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9847593074264, + "p50Nanos" : 1803, + "p95Nanos" : 5691, + "p99Nanos" : 13095, + "maxNanos" : 3158015, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 753088, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 146912, + "acceptedIncludingDrain" : 753088, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 146912, + "httpRequestsIncludingDrain" : 1471, + "postGcLiveHeapBytes" : 12028656, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:45:08.660045878Z", + "cycle" : 8 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001410033, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 256, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9858997362726, + "p50Nanos" : 2107, + "p95Nanos" : 7583, + "p99Nanos" : 16303, + "maxNanos" : 1572863, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 12032144, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:50:09.298556488Z", + "cycle" : 9 + }, { + "recording" : "body", + "receiver" : "UNAVAILABLE", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001379562, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 30, + "gcMillisDuringPhase" : 82, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9862044434394, + "p50Nanos" : 1931, + "p95Nanos" : 7619, + "p99Nanos" : 15599, + "maxNanos" : 3487743, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 0, + "failedSpansBeforeRecovery" : 18944, + "queueDropsBeforeRecovery" : 879008, + "acceptedIncludingDrain" : 2048, + "failedSpansIncludingDrain" : 18944, + "queueDropsIncludingDrain" : 879008, + "httpRequestsIncludingDrain" : 193, + "postGcLiveHeapBytes" : 12034248, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T10:55:21.625449658Z", + "cycle" : 10 + }, { + "recording" : "body", + "receiver" : "SLOW", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001366194, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 147, + "gcMillisDuringPhase" : 377, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.986338122216, + "p50Nanos" : 1970, + "p95Nanos" : 6491, + "p99Nanos" : 15623, + "maxNanos" : 3860479, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 754112, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 145888, + "acceptedIncludingDrain" : 754112, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 145888, + "httpRequestsIncludingDrain" : 1473, + "postGcLiveHeapBytes" : 12036568, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:00:23.125516964Z", + "cycle" : 11 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001501737, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 259, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9849827051735, + "p50Nanos" : 2251, + "p95Nanos" : 9703, + "p99Nanos" : 17663, + "maxNanos" : 1469439, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 12038760, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:05:23.764139309Z", + "cycle" : 12 + }, { + "recording" : "body", + "receiver" : "UNAVAILABLE", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001384322, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 30, + "gcMillisDuringPhase" : 81, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9861568438782, + "p50Nanos" : 1958, + "p95Nanos" : 7527, + "p99Nanos" : 15487, + "maxNanos" : 3586047, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 0, + "failedSpansBeforeRecovery" : 19456, + "queueDropsBeforeRecovery" : 879008, + "acceptedIncludingDrain" : 1536, + "failedSpansIncludingDrain" : 19456, + "queueDropsIncludingDrain" : 879008, + "httpRequestsIncludingDrain" : 194, + "postGcLiveHeapBytes" : 12040832, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:10:34.655445955Z", + "cycle" : 13 + }, { + "recording" : "body", + "receiver" : "SLOW", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001327199, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 147, + "gcMillisDuringPhase" : 362, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.986728068715, + "p50Nanos" : 2099, + "p95Nanos" : 8079, + "p99Nanos" : 16991, + "maxNanos" : 3676159, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 754176, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 145824, + "acceptedIncludingDrain" : 754176, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 145824, + "httpRequestsIncludingDrain" : 1473, + "postGcLiveHeapBytes" : 12043784, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:15:36.135118046Z", + "cycle" : 14 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001537585, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 253, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9846242288054, + "p50Nanos" : 2187, + "p95Nanos" : 9327, + "p99Nanos" : 17327, + "maxNanos" : 1185791, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 12045880, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:20:36.773806515Z", + "cycle" : 15 + }, { + "recording" : "body", + "receiver" : "UNAVAILABLE", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.00142519, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 30, + "gcMillisDuringPhase" : 83, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.985748167705, + "p50Nanos" : 2012, + "p95Nanos" : 8011, + "p99Nanos" : 16319, + "maxNanos" : 3641343, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 0, + "failedSpansBeforeRecovery" : 19456, + "queueDropsBeforeRecovery" : 878496, + "acceptedIncludingDrain" : 2048, + "failedSpansIncludingDrain" : 19456, + "queueDropsIncludingDrain" : 878496, + "httpRequestsIncludingDrain" : 197, + "postGcLiveHeapBytes" : 12048088, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:25:48.821923506Z", + "cycle" : 16 + }, { + "recording" : "body", + "receiver" : "SLOW", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001352422, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 161, + "gcMillisDuringPhase" : 499, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9864758409676, + "p50Nanos" : 2215, + "p95Nanos" : 9511, + "p99Nanos" : 17647, + "maxNanos" : 3491839, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 753568, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 146432, + "acceptedIncludingDrain" : 753568, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 146432, + "httpRequestsIncludingDrain" : 1472, + "postGcLiveHeapBytes" : 12050584, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:30:50.330371177Z", + "cycle" : 17 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001311978, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 258, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9868802773763, + "p50Nanos" : 2149, + "p95Nanos" : 8051, + "p99Nanos" : 16287, + "maxNanos" : 1494015, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 12052672, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:35:50.968307380Z", + "cycle" : 18 + }, { + "recording" : "body", + "receiver" : "UNAVAILABLE", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001352287, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 30, + "gcMillisDuringPhase" : 79, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.986477190956, + "p50Nanos" : 2057, + "p95Nanos" : 8147, + "p99Nanos" : 16303, + "maxNanos" : 3772415, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 0, + "failedSpansBeforeRecovery" : 18944, + "queueDropsBeforeRecovery" : 879008, + "acceptedIncludingDrain" : 2048, + "failedSpansIncludingDrain" : 18944, + "queueDropsIncludingDrain" : 879008, + "httpRequestsIncludingDrain" : 193, + "postGcLiveHeapBytes" : 12055456, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:41:03.693884290Z", + "cycle" : 19 + }, { + "recording" : "body", + "receiver" : "SLOW", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001367856, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 147, + "gcMillisDuringPhase" : 387, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9863215023674, + "p50Nanos" : 2095, + "p95Nanos" : 7923, + "p99Nanos" : 16687, + "maxNanos" : 4280319, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 754464, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 145536, + "acceptedIncludingDrain" : 754464, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 145536, + "httpRequestsIncludingDrain" : 1474, + "postGcLiveHeapBytes" : 12057960, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:46:05.242431989Z", + "cycle" : 20 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.00145411, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 254, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.985458970481, + "p50Nanos" : 2119, + "p95Nanos" : 8303, + "p99Nanos" : 16831, + "maxNanos" : 1299455, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 12060096, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:51:05.880349248Z", + "cycle" : 21 + }, { + "recording" : "body", + "receiver" : "UNAVAILABLE", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001395541, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 30, + "gcMillisDuringPhase" : 82, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.9860446549174, + "p50Nanos" : 1943, + "p95Nanos" : 7111, + "p99Nanos" : 15247, + "maxNanos" : 4179967, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 0, + "failedSpansBeforeRecovery" : 19456, + "queueDropsBeforeRecovery" : 879008, + "acceptedIncludingDrain" : 1536, + "failedSpansIncludingDrain" : 19456, + "queueDropsIncludingDrain" : 879008, + "httpRequestsIncludingDrain" : 194, + "postGcLiveHeapBytes" : 12062168, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T11:56:17.076229508Z", + "cycle" : 22 + }, { + "recording" : "body", + "receiver" : "SLOW", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001397267, + "wallMeasuredSeconds" : 300.001, + "gcCollectionsDuringPhase" : 147, + "gcMillisDuringPhase" : 379, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.986027395078, + "p50Nanos" : 2083, + "p95Nanos" : 7555, + "p99Nanos" : 16431, + "maxNanos" : 4395007, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 754528, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 145472, + "acceptedIncludingDrain" : 754528, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 145472, + "httpRequestsIncludingDrain" : 1474, + "postGcLiveHeapBytes" : 12064240, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T12:01:18.604161534Z", + "cycle" : 23 + }, { + "recording" : "body", + "receiver" : "NORMAL", + "concurrency" : 32, + "requestedSeconds" : 300, + "measuredSeconds" : 300.001497988, + "wallMeasuredSeconds" : 300.002, + "gcCollectionsDuringPhase" : 166, + "gcMillisDuringPhase" : 251, + "targetOpsPerSecond" : 3000, + "operations" : 900000, + "opsPerSecond" : 2999.985020194799, + "p50Nanos" : 2171, + "p95Nanos" : 8279, + "p99Nanos" : 16639, + "maxNanos" : 1531903, + "producerAllocatedBytesPerOp" : 2152.0022755555556, + "acceptedBeforeRecovery" : 900000, + "failedSpansBeforeRecovery" : 0, + "queueDropsBeforeRecovery" : 0, + "acceptedIncludingDrain" : 900000, + "failedSpansIncludingDrain" : 0, + "queueDropsIncludingDrain" : 0, + "httpRequestsIncludingDrain" : 1758, + "postGcLiveHeapBytes" : 12066360, + "threadsAfterIdle" : 53, + "batchWorkersAfterIdle" : 2, + "loadWorkersAfterIdle" : 32, + "sampledEndedObservations" : 32, + "retainedObservationSamples" : 0, + "sampledAt" : "2026-09-25T12:06:19.242005456Z", + "cycle" : 24 + } ] +} \ No newline at end of file diff --git a/experiments/core-operations/pom.xml b/experiments/core-operations/pom.xml index a007ee8..81f252c 100644 --- a/experiments/core-operations/pom.xml +++ b/experiments/core-operations/pom.xml @@ -5,7 +5,7 @@ UTF-8 11 - 0.2.2 + 0.2.3-SNAPSHOT io.github.chomingilangfuse-otel-core${langfuse-otel.version}test diff --git a/experiments/core-preflight/pom.xml b/experiments/core-preflight/pom.xml index b56f3d7..cd9dd8d 100644 --- a/experiments/core-preflight/pom.xml +++ b/experiments/core-preflight/pom.xml @@ -5,7 +5,7 @@ UTF-8 11 - 0.2.2 + 0.2.3-SNAPSHOT com.fasterxml.jackson.corejackson-databind2.21.5test diff --git a/langfuse-otel-core/pom.xml b/langfuse-otel-core/pom.xml index 4de36f4..8e292ce 100644 --- a/langfuse-otel-core/pom.xml +++ b/langfuse-otel-core/pom.xml @@ -6,7 +6,7 @@ io.github.chomingi langfuse-otel-java - 0.2.2 + 0.2.3-SNAPSHOT langfuse-otel-core diff --git a/langfuse-otel-spring-boot-starter/pom.xml b/langfuse-otel-spring-boot-starter/pom.xml index 4cd40d3..7432b10 100644 --- a/langfuse-otel-spring-boot-starter/pom.xml +++ b/langfuse-otel-spring-boot-starter/pom.xml @@ -6,7 +6,7 @@ io.github.chomingi langfuse-otel-java - 0.2.2 + 0.2.3-SNAPSHOT langfuse-otel-spring-boot-starter diff --git a/pom.xml b/pom.xml index 1fe707c..48d5754 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.chomingi langfuse-otel-java - 0.2.2 + 0.2.3-SNAPSHOT pom langfuse-otel-java @@ -58,7 +58,7 @@ 2.7.1 2.9.3 0.26.2 - 0.2.1 + 0.2.2 0.000 0.000 integration,e2e,release-canary