[{"data":1,"prerenderedAt":3451},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Freference\u002Fmetrics-reference":314,"\u002Fdocs\u002Freference\u002Fmetrics-reference-surround":3446},[4,38,86,149,176,219,257,273],{"title":5,"path":6,"stem":7,"children":8,"icon":37},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,12,17,22,27,32],{"title":10,"path":6,"stem":7,"icon":11},"Getting started","i-lucide-flag",{"title":13,"path":14,"stem":15,"icon":16},"Modules overview","\u002Fdocs\u002Fgetting-started\u002Fmodules-overview","1.docs\u002F1.getting-started\u002F2.modules-overview","i-lucide-boxes",{"title":18,"path":19,"stem":20,"icon":21},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F3.installation","i-lucide-download",{"title":23,"path":24,"stem":25,"icon":26},"License configuration","\u002Fdocs\u002Fgetting-started\u002Flicense-configuration","1.docs\u002F1.getting-started\u002F4.license-configuration","i-lucide-key-round",{"title":28,"path":29,"stem":30,"icon":31},"Your first app","\u002Fdocs\u002Fgetting-started\u002Ffirst-app","1.docs\u002F1.getting-started\u002F5.first-app","i-lucide-square-play",{"title":33,"path":34,"stem":35,"icon":36},"Project setup","\u002Fdocs\u002Fgetting-started\u002Fproject-setup","1.docs\u002F1.getting-started\u002F6.project-setup","i-lucide-package",false,{"title":39,"path":40,"stem":41,"children":42,"icon":45},"Core Concepts","\u002Fdocs\u002Fconcepts","1.docs\u002F2.concepts\u002F1.index",[43,46,51,56,61,66,71,76,81],{"title":44,"path":40,"stem":41,"icon":45},"Core concepts","i-lucide-book-open",{"title":47,"path":48,"stem":49,"icon":50},"Architecture","\u002Fdocs\u002Fconcepts\u002Farchitecture","1.docs\u002F2.concepts\u002F2.architecture","i-lucide-layers",{"title":52,"path":53,"stem":54,"icon":55},"Exactly-once semantics","\u002Fdocs\u002Fconcepts\u002Fexactly-once","1.docs\u002F2.concepts\u002F3.exactly-once","i-lucide-shield-check",{"title":57,"path":58,"stem":59,"icon":60},"Lanes and parallelism","\u002Fdocs\u002Fconcepts\u002Flanes-and-parallelism","1.docs\u002F2.concepts\u002F4.lanes-and-parallelism","i-lucide-split",{"title":62,"path":63,"stem":64,"icon":65},"State and thread-safety","\u002Fdocs\u002Fconcepts\u002Fstate-and-thread-safety","1.docs\u002F2.concepts\u002F5.state-and-thread-safety","i-lucide-lock",{"title":67,"path":68,"stem":69,"icon":70},"Event time and watermarks","\u002Fdocs\u002Fconcepts\u002Fevent-time-and-watermarks","1.docs\u002F2.concepts\u002F6.event-time-and-watermarks","i-lucide-clock",{"title":72,"path":73,"stem":74,"icon":75},"The configuration model","\u002Fdocs\u002Fconcepts\u002Fconfiguration-model","1.docs\u002F2.concepts\u002F7.configuration-model","i-lucide-sliders-horizontal",{"title":77,"path":78,"stem":79,"icon":80},"The error-handling model","\u002Fdocs\u002Fconcepts\u002Ferror-handling-model","1.docs\u002F2.concepts\u002F8.error-handling-model","i-lucide-triangle-alert",{"title":82,"path":83,"stem":84,"icon":85},"How StoatFlow differs from Kafka Streams","\u002Fdocs\u002Fconcepts\u002Fhow-stoatflow-differs-from-ks","1.docs\u002F2.concepts\u002F9.how-stoatflow-differs-from-ks","i-lucide-arrow-left-right",{"title":87,"path":88,"stem":89,"children":90,"icon":93},"Building Topologies","\u002Fdocs\u002Fbuilding","1.docs\u002F3.building\u002F1.index",[91,94,99,104,109,114,119,124,129,134,139,144],{"title":92,"path":88,"stem":89,"icon":93},"Building topologies","i-lucide-blocks",{"title":95,"path":96,"stem":97,"icon":98},"Error handling and DLQ","\u002Fdocs\u002Fbuilding\u002Ferror-handling-dlq","1.docs\u002F3.building\u002F10.error-handling-dlq","i-lucide-circle-x",{"title":100,"path":101,"stem":102,"icon":103},"State stores","\u002Fdocs\u002Fbuilding\u002Fstate-stores","1.docs\u002F3.building\u002F11.state-stores","i-lucide-database",{"title":105,"path":106,"stem":107,"icon":108},"Testing topologies","\u002Fdocs\u002Fbuilding\u002Ftesting","1.docs\u002F3.building\u002F12.testing","i-lucide-flask-conical",{"title":110,"path":111,"stem":112,"icon":113},"Sources and sinks","\u002Fdocs\u002Fbuilding\u002Fstreams-builder","1.docs\u002F3.building\u002F2.streams-builder","i-lucide-import",{"title":115,"path":116,"stem":117,"icon":118},"KStream and KTable operations","\u002Fdocs\u002Fbuilding\u002Fkstream-ktable","1.docs\u002F3.building\u002F3.kstream-ktable","i-lucide-waypoints",{"title":120,"path":121,"stem":122,"icon":123},"Aggregations","\u002Fdocs\u002Fbuilding\u002Faggregations","1.docs\u002F3.building\u002F4.aggregations","i-lucide-sigma",{"title":125,"path":126,"stem":127,"icon":128},"Windowing","\u002Fdocs\u002Fbuilding\u002Fwindowing","1.docs\u002F3.building\u002F5.windowing","i-lucide-calendar-clock",{"title":130,"path":131,"stem":132,"icon":133},"Joins","\u002Fdocs\u002Fbuilding\u002Fjoins","1.docs\u002F3.building\u002F6.joins","i-lucide-git-merge",{"title":135,"path":136,"stem":137,"icon":138},"The Processor API","\u002Fdocs\u002Fbuilding\u002Fprocessor-api","1.docs\u002F3.building\u002F7.processor-api","i-lucide-cpu",{"title":140,"path":141,"stem":142,"icon":143},"Scheduled sources","\u002Fdocs\u002Fbuilding\u002Fscheduled-sources","1.docs\u002F3.building\u002F8.scheduled-sources","i-lucide-timer",{"title":145,"path":146,"stem":147,"icon":148},"Serdes and Avro","\u002Fdocs\u002Fbuilding\u002Fserdes","1.docs\u002F3.building\u002F9.serdes","i-lucide-binary",{"title":150,"path":151,"stem":152,"children":153,"icon":75},"Configuration","\u002Fdocs\u002Fconfiguration","1.docs\u002F4.configuration\u002F1.index",[154,156,161,166,171],{"title":155,"path":151,"stem":152,"icon":75},"How configuration works",{"title":157,"path":158,"stem":159,"icon":160},"Engine configuration (:core)","\u002Fdocs\u002Fconfiguration\u002Fcore-config","1.docs\u002F4.configuration\u002F2.core-config","i-lucide-settings-2",{"title":162,"path":163,"stem":164,"icon":165},"Runtime configuration (:runtime)","\u002Fdocs\u002Fconfiguration\u002Fruntime-config","1.docs\u002F4.configuration\u002F3.runtime-config","i-lucide-server-cog",{"title":167,"path":168,"stem":169,"icon":170},"Defaults, adaptivity, and presets","\u002Fdocs\u002Fconfiguration\u002Fdefaults-and-presets","1.docs\u002F4.configuration\u002F4.defaults-and-presets","i-lucide-gauge",{"title":172,"path":173,"stem":174,"icon":175},"Kafka client configuration","\u002Fdocs\u002Fconfiguration\u002Fkafka-client-config","1.docs\u002F4.configuration\u002F5.kafka-client-config","i-lucide-plug",{"title":177,"path":178,"stem":179,"children":180,"icon":183},"Running in Production","\u002Fdocs\u002Fruntime","1.docs\u002F5.runtime\u002F1.index",[181,184,189,194,199,204,209,214],{"title":182,"path":178,"stem":179,"icon":183},"The runtime","i-lucide-server",{"title":185,"path":186,"stem":187,"icon":188},"The REST API","\u002Fdocs\u002Fruntime\u002Frest-api","1.docs\u002F5.runtime\u002F2.rest-api","i-lucide-globe",{"title":190,"path":191,"stem":192,"icon":193},"Health checks","\u002Fdocs\u002Fruntime\u002Fhealth-checks","1.docs\u002F5.runtime\u002F3.health-checks","i-lucide-heart-pulse",{"title":195,"path":196,"stem":197,"icon":198},"Metrics","\u002Fdocs\u002Fruntime\u002Fmetrics","1.docs\u002F5.runtime\u002F4.metrics","i-lucide-activity",{"title":200,"path":201,"stem":202,"icon":203},"Pause and resume","\u002Fdocs\u002Fruntime\u002Fpause-unpause","1.docs\u002F5.runtime\u002F5.pause-unpause","i-lucide-pause",{"title":205,"path":206,"stem":207,"icon":208},"Plugins and lifecycle hooks","\u002Fdocs\u002Fruntime\u002Fplugins","1.docs\u002F5.runtime\u002F6.plugins","i-lucide-puzzle",{"title":210,"path":211,"stem":212,"icon":213},"Docker images","\u002Fdocs\u002Fruntime\u002Fdocker","1.docs\u002F5.runtime\u002F7.docker","i-lucide-container",{"title":215,"path":216,"stem":217,"icon":218},"GraalVM native image","\u002Fdocs\u002Fruntime\u002Fnative-image","1.docs\u002F5.runtime\u002F8.native-image","i-lucide-zap",{"title":220,"path":221,"stem":222,"children":223,"icon":226},"Deploying & Operating","\u002Fdocs\u002Foperating","1.docs\u002F6.operating\u002F1.index",[224,227,232,237,242,247,252],{"title":225,"path":221,"stem":222,"icon":226},"Deploying and operating","i-lucide-life-buoy",{"title":228,"path":229,"stem":230,"icon":231},"Running on Kubernetes","\u002Fdocs\u002Foperating\u002Fkubernetes","1.docs\u002F6.operating\u002F2.kubernetes","i-lucide-ship",{"title":233,"path":234,"stem":235,"icon":236},"High availability","\u002Fdocs\u002Foperating\u002Fhigh-availability","1.docs\u002F6.operating\u002F3.high-availability","i-lucide-copy",{"title":238,"path":239,"stem":240,"icon":241},"Liveness and readiness probes","\u002Fdocs\u002Foperating\u002Fprobes","1.docs\u002F6.operating\u002F4.probes","i-lucide-stethoscope",{"title":243,"path":244,"stem":245,"icon":246},"Observability","\u002Fdocs\u002Foperating\u002Fobservability","1.docs\u002F6.operating\u002F5.observability","i-lucide-telescope",{"title":248,"path":249,"stem":250,"icon":251},"Tuning under load","\u002Fdocs\u002Foperating\u002Ftuning","1.docs\u002F6.operating\u002F6.tuning","i-lucide-sliders",{"title":253,"path":254,"stem":255,"icon":256},"Production checklist","\u002Fdocs\u002Foperating\u002Fproduction-checklist","1.docs\u002F6.operating\u002F7.production-checklist","i-lucide-clipboard-check",{"title":258,"path":259,"stem":260,"children":261,"icon":85},"Migrating from Kafka Streams","\u002Fdocs\u002Fmigration","1.docs\u002F7.migration\u002F1.index",[262,263,268],{"title":258,"path":259,"stem":260,"icon":85},{"title":264,"path":265,"stem":266,"icon":267},"Migration without carrying state","\u002Fdocs\u002Fmigration\u002Fwithout-data-migration","1.docs\u002F7.migration\u002F2.without-data-migration","i-lucide-sparkles",{"title":269,"path":270,"stem":271,"icon":272},"Migration carrying state","\u002Fdocs\u002Fmigration\u002Fwith-data-migration","1.docs\u002F7.migration\u002F3.with-data-migration","i-lucide-database-backup",{"title":274,"path":275,"stem":276,"children":277,"icon":279},"Reference","\u002Fdocs\u002Freference","1.docs\u002F8.reference\u002F1.index",[278,280,285,290,295,300,305,309],{"title":274,"path":275,"stem":276,"icon":279},"i-lucide-list",{"title":281,"path":282,"stem":283,"icon":284},"Configuration reference","\u002Fdocs\u002Freference\u002Fconfiguration-reference","1.docs\u002F8.reference\u002F2.configuration-reference","i-lucide-table",{"title":286,"path":287,"stem":288,"icon":289},"REST API reference","\u002Fdocs\u002Freference\u002Frest-api-reference","1.docs\u002F8.reference\u002F3.rest-api-reference","i-lucide-network",{"title":291,"path":292,"stem":293,"icon":294},"Gradle plugin reference","\u002Fdocs\u002Freference\u002Fgradle-plugin-reference","1.docs\u002F8.reference\u002F4.gradle-plugin-reference","i-lucide-box",{"title":296,"path":297,"stem":298,"icon":299},"Maven reference","\u002Fdocs\u002Freference\u002Fmaven-reference","1.docs\u002F8.reference\u002F5.maven-reference","i-simple-icons-apachemaven",{"title":301,"path":302,"stem":303,"icon":304},"Kafka Streams compatibility matrix","\u002Fdocs\u002Freference\u002Fks-compatibility-matrix","1.docs\u002F8.reference\u002F6.ks-compatibility-matrix","i-lucide-table-2",{"title":306,"path":307,"stem":308,"icon":170},"Metrics reference","\u002Fdocs\u002Freference\u002Fmetrics-reference","1.docs\u002F8.reference\u002F7.metrics-reference",{"title":310,"path":311,"stem":312,"icon":313},"Glossary","\u002Fdocs\u002Freference\u002Fglossary","1.docs\u002F8.reference\u002F8.glossary","i-lucide-book-a",{"id":315,"title":306,"body":316,"description":3439,"extension":3440,"meta":3441,"navigation":3442,"pageType":3443,"path":307,"seo":3444,"stem":308,"__hash__":3445},"docs\u002F1.docs\u002F8.reference\u002F7.metrics-reference.md",{"type":317,"value":318,"toc":3420},"minimark",[319,343,359,364,454,458,661,665,801,818,822,1457,1461,1478,1766,1770,1876,1880,2268,2272,2406,2410,2581,2585,2815,2819,2936,2939,2949,3176,3180,3185,3325,3329,3336,3370,3386,3390],[320,321,322,323,327,328,331,332,335,336,339,340,342],"p",{},"The ",[324,325,326],"code",{},":runtime"," module exports metrics on ",[324,329,330],{},"GET \u002Fmetrics"," in Prometheus text format, backed by a Micrometer ",[324,333,334],{},"PrometheusMeterRegistry",". This page is the meter catalogue: every StoatFlow meter the current release registers, grouped by area, with its type, tags, and a one-line description. For how to enable, scrape, and configure metrics — recording levels, naming rewrites, PromQL examples — see ",[337,338,195],"a",{"href":196},". For what to alert on, see ",[337,341,243],{"href":244},".",[344,345,348],"callout",{"color":346,"icon":347},"info","i-lucide-file-check",[320,349,350,354,355,358],{},[351,352,353],"strong",{},"Contract."," This catalogue lists the stable meter set. The live ",[324,356,357],{},"\u002Fmetrics"," scrape is authoritative for the exact tag sets and any point-release additions — when in doubt, trust the scrape.",[360,361,363],"h2",{"id":362},"how-to-read-this-page","How to read this page",[365,366,367,403,421,439],"ul",{},[368,369,370,373,374,376,377,380,381,384,385,388,389,388,392,395,396,399,400,342],"li",{},[351,371,372],{},"Meter"," — the canonical dotted metric ID. Prometheus rewrites ",[324,375,342],{}," to ",[324,378,379],{},"_"," and appends the type suffix (",[324,382,383],{},"_total"," for counters; ",[324,386,387],{},"_seconds_count"," \u002F ",[324,390,391],{},"_seconds_sum",[324,393,394],{},"_seconds_max"," for timers), so ",[324,397,398],{},"stoatflow.barrier.commit.latency"," is scraped as ",[324,401,402],{},"stoatflow_barrier_commit_latency_seconds_*",[368,404,405,408,409,412,413,416,417,420],{},[351,406,407],{},"Tags"," — per-meter tags beyond the common ones. Every StoatFlow meter carries ",[324,410,411],{},"application_id","; the registry-level ",[324,414,415],{},"application"," tag plus anything under ",[324,418,419],{},"runtime.metrics.common-tags"," is applied to every meter on the endpoint, including JVM and Kafka-client meters.",[368,422,423,426,427,431,432,435,436,438],{},[351,424,425],{},"Recording level"," — meters marked ",[428,429,430],"em",{},"(debug)"," in the description only appear with ",[324,433,434],{},"runtime.metrics.recording-level: debug","; everything else is exported at the default ",[324,437,346],{}," level.",[368,440,441,442,445,446,449,450,453],{},"The commit-path latency timers publish client-side P50\u002FP95\u002FP99 quantiles as ",[324,443,444],{},"{quantile=\"…\"}"," series on the base ",[324,447,448],{},"_seconds"," name — there are no ",[324,451,452],{},"_bucket"," histograms.",[360,455,457],{"id":456},"application-and-engine","Application and engine",[459,460,461,478],"table",{},[462,463,464],"thead",{},[465,466,467,470,473,475],"tr",{},[468,469,372],"th",{},[468,471,472],{},"Type",[468,474,407],{},[468,476,477],{},"What it measures",[479,480,481,529,543,557,571,595,619,633,647],"tbody",{},[465,482,483,489,492,495],{},[484,485,486],"td",{},[324,487,488],{},"stoatflow.client.state",[484,490,491],{},"Gauge",[484,493,494],{},"—",[484,496,497,498,501,502,501,505,501,508,501,511,501,514,501,517,501,520,501,523,501,526,342],{},"Application state ordinal: ",[324,499,500],{},"CREATED=0",", ",[324,503,504],{},"STARTING=1",[324,506,507],{},"VALIDATING_STATE=2",[324,509,510],{},"RESTORING=3",[324,512,513],{},"RUNNING=4",[324,515,516],{},"DRAINING=5",[324,518,519],{},"PAUSED=6",[324,521,522],{},"STOPPING=7",[324,524,525],{},"STOPPED=8",[324,527,528],{},"ERROR=9",[465,530,531,536,538,540],{},[484,532,533],{},[324,534,535],{},"stoatflow.client.lane.alive",[484,537,491],{},[484,539,494],{},[484,541,542],{},"Currently alive\u002Fhealthy lanes.",[465,544,545,550,552,554],{},[484,546,547],{},[324,548,549],{},"stoatflow.client.uptime.seconds",[484,551,491],{},[484,553,494],{},[484,555,556],{},"Seconds since the application started.",[465,558,559,564,566,568],{},[484,560,561],{},[324,562,563],{},"stoatflow.client.start.time.epoch.seconds",[484,565,491],{},[484,567,494],{},[484,569,570],{},"Application start time (epoch seconds).",[465,572,573,578,580,588],{},[484,574,575],{},[324,576,577],{},"stoatflow.lanes",[484,579,491],{},[484,581,582,501,585],{},[324,583,584],{},"sub_topology",[324,586,587],{},"chain",[484,589,590,591,594],{},"Configured key-affinity lanes per sub-topology; ",[324,592,593],{},"sum(stoatflow_lanes)"," gives the cross-topology total.",[465,596,597,602,605,616],{},[484,598,599],{},[324,600,601],{},"stoatflow.engine.restart.total",[484,603,604],{},"Counter",[484,606,607,501,610,501,613],{},[324,608,609],{},"disposition",[324,611,612],{},"target",[324,614,615],{},"trigger",[484,617,618],{},"Successful in-place engine restarts (fault recovery, programmatic, HA demote).",[465,620,621,626,628,630],{},[484,622,623],{},[324,624,625],{},"stoatflow.topology.stateless",[484,627,491],{},[484,629,494],{},[484,631,632],{},"1 if the topology has no state stores, 0 otherwise.",[465,634,635,640,642,644],{},[484,636,637],{},[324,638,639],{},"stoatflow.topology.event.time.tracking",[484,641,491],{},[484,643,494],{},[484,645,646],{},"1 if watermark tracking is active, 0 if bypassed.",[465,648,649,654,656,658],{},[484,650,651],{},[324,652,653],{},"stoatflow.topology.dispatch.mode",[484,655,491],{},[484,657,494],{},[484,659,660],{},"0 for timestamp-ordered dispatch, 1 for FIFO.",[360,662,664],{"id":663},"lanes-and-throughput","Lanes and throughput",[459,666,667,679],{},[462,668,669],{},[465,670,671,673,675,677],{},[468,672,372],{},[468,674,472],{},[468,676,407],{},[468,678,477],{},[479,680,681,700,718,734,750,766,783],{},[465,682,683,688,690,697],{},[484,684,685],{},[324,686,687],{},"stoatflow.lane.queue.size",[484,689,491],{},[484,691,692,501,695],{},[324,693,694],{},"lane_id",[324,696,587],{},[484,698,699],{},"Current lane queue depth (backpressure signal).",[465,701,702,707,709,715],{},[484,703,704],{},[324,705,706],{},"stoatflow.lane.queue.capacity",[484,708,491],{},[484,710,711,501,713],{},[324,712,584],{},[324,714,587],{},[484,716,717],{},"Configured lane queue capacity per sub-topology.",[465,719,720,725,727,731],{},[484,721,722],{},[324,723,724],{},"stoatflow.lane.queue.full.total",[484,726,604],{},[484,728,729],{},[324,730,694],{},[484,732,733],{},"Times a lane queue was full (backpressure events).",[465,735,736,741,743,747],{},[484,737,738],{},[324,739,740],{},"stoatflow.lane.records.processed.total",[484,742,604],{},[484,744,745],{},[324,746,694],{},[484,748,749],{},"Records processed by a lane.",[465,751,752,757,759,763],{},[484,753,754],{},[324,755,756],{},"stoatflow.lane.bytes.processed.total",[484,758,604],{},[484,760,761],{},[324,762,694],{},[484,764,765],{},"Bytes processed by a lane.",[465,767,768,773,776,780],{},[484,769,770],{},[324,771,772],{},"stoatflow.lane.process.latency",[484,774,775],{},"Timer",[484,777,778],{},[324,779,694],{},[484,781,782],{},"Per-record processing latency.",[465,784,785,790,792,794],{},[484,786,787],{},[324,788,789],{},"stoatflow.e2e.latency",[484,791,775],{},[484,793,494],{},[484,795,796,797,800],{},"Per-record end-to-end latency, record timestamp to processing completion (KS ",[324,798,799],{},"record-e2e-latency"," analogue).",[320,802,803,804,807,808,501,811,814,815,342],{},"Lane IDs follow the ",[324,805,806],{},"{subtopology}_{lane}"," convention — e.g. ",[324,809,810],{},"0_0",[324,812,813],{},"1_7",". Aggregate with a regex matcher: ",[324,816,817],{},"sum(stoatflow_lane_queue_size{lane_id=~\"1_.*\"})",[360,819,821],{"id":820},"commit-barriers-and-transactions","Commit barriers and transactions",[459,823,824,836],{},[462,825,826],{},[465,827,828,830,832,834],{},[468,829,372],{},[468,831,472],{},[468,833,407],{},[468,835,477],{},[479,837,838,852,866,883,897,911,925,941,955,969,988,1006,1020,1034,1048,1062,1080,1094,1108,1141,1155,1183,1197,1211,1225,1239,1256,1270,1284,1300,1314,1328,1342,1356,1370,1384,1398,1412,1426,1440],{},[465,839,840,845,847,849],{},[484,841,842],{},[324,843,844],{},"stoatflow.barrier.initiated.total",[484,846,604],{},[484,848,494],{},[484,850,851],{},"Barriers initiated.",[465,853,854,859,861,863],{},[484,855,856],{},[324,857,858],{},"stoatflow.barrier.completed.total",[484,860,604],{},[484,862,494],{},[484,864,865],{},"Barriers successfully completed.",[465,867,868,873,875,880],{},[484,869,870],{},[324,871,872],{},"stoatflow.barrier.failed.total",[484,874,604],{},[484,876,877],{},[324,878,879],{},"error_type",[484,881,882],{},"Barrier failures, by error type.",[465,884,885,890,892,894],{},[484,886,887],{},[324,888,889],{},"stoatflow.barrier.in.flight",[484,891,491],{},[484,893,494],{},[484,895,896],{},"Currently pending barriers.",[465,898,899,904,906,908],{},[484,900,901],{},[324,902,903],{},"stoatflow.barrier.latency",[484,905,775],{},[484,907,494],{},[484,909,910],{},"Barrier initiation to completion.",[465,912,913,918,920,922],{},[484,914,915],{},[324,916,917],{},"stoatflow.barrier.alignment.latency",[484,919,775],{},[484,921,494],{},[484,923,924],{},"Time for all lanes to receive the barrier.",[465,926,927,931,933,935],{},[484,928,929],{},[324,930,398],{},[484,932,775],{},[484,934,494],{},[484,936,937,938,800],{},"Commit latency: producer drain + Kafka TX + state flush (KS ",[324,939,940],{},"commit-latency",[465,942,943,948,950,952],{},[484,944,945],{},[324,946,947],{},"stoatflow.barrier.records.committed.total",[484,949,604],{},[484,951,494],{},[484,953,954],{},"Records committed across barriers.",[465,956,957,962,964,966],{},[484,958,959],{},[324,960,961],{},"stoatflow.barrier.bytes.committed.total",[484,963,604],{},[484,965,494],{},[484,967,968],{},"Bytes committed across barriers.",[465,970,971,976,978,983],{},[484,972,973],{},[324,974,975],{},"stoatflow.barrier.subtopology.received.total",[484,977,604],{},[484,979,980],{},[324,981,982],{},"subtopology_id",[484,984,985,986],{},"Barriers received per sub-topology. ",[428,987,430],{},[465,989,990,995,997,1001],{},[484,991,992],{},[324,993,994],{},"stoatflow.barrier.subtopology.pending.lanes",[484,996,491],{},[484,998,999],{},[324,1000,982],{},[484,1002,1003,1004],{},"Pending lane completions per sub-topology. ",[428,1005,430],{},[465,1007,1008,1013,1015,1017],{},[484,1009,1010],{},[324,1011,1012],{},"stoatflow.barrier.interval.target.ms",[484,1014,491],{},[484,1016,494],{},[484,1018,1019],{},"Current target barrier-to-barrier interval (ms).",[465,1021,1022,1027,1029,1031],{},[484,1023,1024],{},[324,1025,1026],{},"stoatflow.barrier.commit.duration.estimate.ms",[484,1028,491],{},[484,1030,494],{},[484,1032,1033],{},"Smoothed estimate of commit duration (ms).",[465,1035,1036,1041,1043,1045],{},[484,1037,1038],{},[324,1039,1040],{},"stoatflow.barrier.epoch.max.records",[484,1042,491],{},[484,1044,494],{},[484,1046,1047],{},"Current dynamic epoch record limit.",[465,1049,1050,1055,1057,1059],{},[484,1051,1052],{},[324,1053,1054],{},"stoatflow.barrier.epoch.actual.records",[484,1056,491],{},[484,1058,494],{},[484,1060,1061],{},"Records dispatched in the last epoch.",[465,1063,1064,1069,1071,1073],{},[484,1065,1066],{},[324,1067,1068],{},"stoatflow.barrier.epoch.memory.cap",[484,1070,491],{},[484,1072,494],{},[484,1074,1075,1076,1079],{},"Memory-derived epoch record cap; ",[324,1077,1078],{},"-1"," = uncapped.",[465,1081,1082,1087,1089,1091],{},[484,1083,1084],{},[324,1085,1086],{},"stoatflow.barrier.epoch.bytes.per.record",[484,1088,491],{},[484,1090,494],{},[484,1092,1093],{},"Smoothed uncommitted state bytes per record (feeds the memory cap).",[465,1095,1096,1101,1103,1105],{},[484,1097,1098],{},[324,1099,1100],{},"stoatflow.s1.epoch.records.smoothed",[484,1102,491],{},[484,1104,494],{},[484,1106,1107],{},"Smoothed epoch-records average used by the epoch-size controller.",[465,1109,1110,1115,1117,1122],{},[484,1111,1112],{},[324,1113,1114],{},"stoatflow.s1.cap.grow.events.total",[484,1116,604],{},[484,1118,1119],{},[324,1120,1121],{},"reason",[484,1123,1124,1125,501,1128,501,1131,501,1134,501,1137,1140],{},"Epoch-cap grow events by binding signal (",[324,1126,1127],{},"record_count",[324,1129,1130],{},"memory_pressure",[324,1132,1133],{},"stall",[324,1135,1136],{},"soft_binding",[324,1138,1139],{},"time_grow",").",[465,1142,1143,1148,1150,1152],{},[484,1144,1145],{},[324,1146,1147],{},"stoatflow.s1.cap.decay.events.total",[484,1149,604],{},[484,1151,494],{},[484,1153,1154],{},"Epoch-cap decay events.",[465,1156,1157,1162,1164,1168],{},[484,1158,1159],{},[324,1160,1161],{},"stoatflow.barrier.trigger.total",[484,1163,604],{},[484,1165,1166],{},[324,1167,615],{},[484,1169,1170,1171,501,1174,501,1177,501,1180,342],{},"Barrier creation count by trigger: ",[324,1172,1173],{},"TIME",[324,1175,1176],{},"RECORD_COUNT",[324,1178,1179],{},"MEMORY_PRESSURE",[324,1181,1182],{},"CACHE_PRESSURE",[465,1184,1185,1190,1192,1194],{},[484,1186,1187],{},[324,1188,1189],{},"stoatflow.dispatcher.stall.latency",[484,1191,775],{},[484,1193,494],{},[484,1195,1196],{},"Dispatcher stall time waiting for an active commit after hitting the epoch record limit.",[465,1198,1199,1204,1206,1208],{},[484,1200,1201],{},[324,1202,1203],{},"stoatflow.barrier.commit.changelog.latency",[484,1205,775],{},[484,1207,494],{},[484,1209,1210],{},"Aggregate changelog serialization+send latency per commit epoch.",[465,1212,1213,1218,1220,1222],{},[484,1214,1215],{},[324,1216,1217],{},"stoatflow.barrier.commit.state.flush.latency",[484,1219,775],{},[484,1221,494],{},[484,1223,1224],{},"Aggregate state-store flush latency per commit epoch.",[465,1226,1227,1232,1234,1236],{},[484,1228,1229],{},[324,1230,1231],{},"stoatflow.barrier.commit.producer.flush.latency",[484,1233,775],{},[484,1235,494],{},[484,1237,1238],{},"Pre-commit producer flush latency.",[465,1240,1241,1246,1248,1250],{},[484,1242,1243],{},[324,1244,1245],{},"stoatflow.barrier.commit.send.offsets.latency",[484,1247,775],{},[484,1249,494],{},[484,1251,1252,1255],{},[324,1253,1254],{},"sendOffsetsToTransaction"," RPC latency.",[465,1257,1258,1263,1265,1267],{},[484,1259,1260],{},[324,1261,1262],{},"stoatflow.barrier.commit.queue.wait.latency",[484,1264,775],{},[484,1266,494],{},[484,1268,1269],{},"Barrier wait in the commit queue between alignment and commit-thread pickup.",[465,1271,1272,1277,1279,1281],{},[484,1273,1274],{},[324,1275,1276],{},"stoatflow.barrier.commit.post.tx.latency",[484,1278,775],{},[484,1280,494],{},[484,1282,1283],{},"Post-transaction phase latency (guard wait + epoch prepare + send-buffer drain).",[465,1285,1286,1291,1293,1295],{},[484,1287,1288],{},[324,1289,1290],{},"stoatflow.barrier.commit.window.duration",[484,1292,775],{},[484,1294,494],{},[484,1296,1297,1298],{},"Duration of the commit-in-progress blocking window. ",[428,1299,430],{},[465,1301,1302,1307,1309,1311],{},[484,1303,1304],{},[324,1305,1306],{},"stoatflow.commit.state.flush.guard.wait",[484,1308,775],{},[484,1310,494],{},[484,1312,1313],{},"Time the next transaction waited on the previous epoch's async state flush.",[465,1315,1316,1321,1323,1325],{},[484,1317,1318],{},[324,1319,1320],{},"stoatflow.commit.state.flush.async.latency",[484,1322,775],{},[484,1324,494],{},[484,1326,1327],{},"Async (off-commit-path) state flush latency.",[465,1329,1330,1335,1337,1339],{},[484,1331,1332],{},[324,1333,1334],{},"stoatflow.commit.state.flush.overlap",[484,1336,604],{},[484,1338,494],{},[484,1340,1341],{},"Commits that overlapped a still-running previous flush.",[465,1343,1344,1349,1351,1353],{},[484,1345,1346],{},[324,1347,1348],{},"stoatflow.commit.stall.detected.total",[484,1350,604],{},[484,1352,494],{},[484,1354,1355],{},"Commit-pipeline stalls detected by the in-process watchdog.",[465,1357,1358,1363,1365,1367],{},[484,1359,1360],{},[324,1361,1362],{},"stoatflow.commit.stall.duration.ms",[484,1364,491],{},[484,1366,494],{},[484,1368,1369],{},"Age of the most recently observed commit stall (ms).",[465,1371,1372,1377,1379,1381],{},[484,1373,1374],{},[324,1375,1376],{},"stoatflow.transaction.begin.total",[484,1378,604],{},[484,1380,494],{},[484,1382,1383],{},"Kafka transactions begun.",[465,1385,1386,1391,1393,1395],{},[484,1387,1388],{},[324,1389,1390],{},"stoatflow.transaction.commit.total",[484,1392,604],{},[484,1394,494],{},[484,1396,1397],{},"Kafka transactions committed.",[465,1399,1400,1405,1407,1409],{},[484,1401,1402],{},[324,1403,1404],{},"stoatflow.transaction.abort.total",[484,1406,604],{},[484,1408,494],{},[484,1410,1411],{},"Kafka transactions aborted.",[465,1413,1414,1419,1421,1423],{},[484,1415,1416],{},[324,1417,1418],{},"stoatflow.transaction.commit.latency",[484,1420,775],{},[484,1422,494],{},[484,1424,1425],{},"Kafka transaction commit latency.",[465,1427,1428,1433,1435,1437],{},[484,1429,1430],{},[324,1431,1432],{},"stoatflow.alo.commit.delegation.wait",[484,1434,775],{},[484,1436,494],{},[484,1438,1439],{},"Commit delegation wait (at-least-once mode only).",[465,1441,1442,1447,1449,1451],{},[484,1443,1444],{},[324,1445,1446],{},"stoatflow.alo.commit.sync.latency",[484,1448,775],{},[484,1450,494],{},[484,1452,1453,1456],{},[324,1454,1455],{},"commitSync"," latency (at-least-once mode only).",[360,1458,1460],{"id":1459},"state-stores-and-caching","State stores and caching",[320,1462,1463,1464,1467,1468,1471,1472,1475,1476,342],{},"Most store meters are per-store (",[324,1465,1466],{},"store_name",") and require ",[324,1469,1470],{},"recording-level: debug","; the changelog counters and ",[324,1473,1474],{},"store.num.keys"," are exported at ",[324,1477,346],{},[459,1479,1480,1492],{},[462,1481,1482],{},[465,1483,1484,1486,1488,1490],{},[468,1485,372],{},[468,1487,472],{},[468,1489,407],{},[468,1491,477],{},[479,1493,1494,1512,1530,1548,1566,1584,1602,1620,1638,1654,1670,1688,1706,1725,1743],{},[465,1495,1496,1501,1503,1507],{},[484,1497,1498],{},[324,1499,1500],{},"stoatflow.store.get.total",[484,1502,604],{},[484,1504,1505],{},[324,1506,1466],{},[484,1508,1509,1510],{},"Get operations. ",[428,1511,430],{},[465,1513,1514,1519,1521,1525],{},[484,1515,1516],{},[324,1517,1518],{},"stoatflow.store.put.total",[484,1520,604],{},[484,1522,1523],{},[324,1524,1466],{},[484,1526,1527,1528],{},"Put operations. ",[428,1529,430],{},[465,1531,1532,1537,1539,1543],{},[484,1533,1534],{},[324,1535,1536],{},"stoatflow.store.delete.total",[484,1538,604],{},[484,1540,1541],{},[324,1542,1466],{},[484,1544,1545,1546],{},"Delete operations. ",[428,1547,430],{},[465,1549,1550,1555,1557,1561],{},[484,1551,1552],{},[324,1553,1554],{},"stoatflow.store.range.latency",[484,1556,775],{},[484,1558,1559],{},[324,1560,1466],{},[484,1562,1563,1564],{},"Range query latency. ",[428,1565,430],{},[465,1567,1568,1573,1575,1579],{},[484,1569,1570],{},[324,1571,1572],{},"stoatflow.store.all.latency",[484,1574,775],{},[484,1576,1577],{},[324,1578,1466],{},[484,1580,1581,1582],{},"Full-iteration latency. ",[428,1583,430],{},[465,1585,1586,1591,1593,1597],{},[484,1587,1588],{},[324,1589,1590],{},"stoatflow.store.flush.latency",[484,1592,775],{},[484,1594,1595],{},[324,1596,1466],{},[484,1598,1599,1600],{},"Store flush latency. ",[428,1601,430],{},[465,1603,1604,1609,1611,1615],{},[484,1605,1606],{},[324,1607,1608],{},"stoatflow.store.cache.hit.total",[484,1610,604],{},[484,1612,1613],{},[324,1614,1466],{},[484,1616,1617,1618],{},"Store cache hits. ",[428,1619,430],{},[465,1621,1622,1627,1629,1633],{},[484,1623,1624],{},[324,1625,1626],{},"stoatflow.store.cache.miss.total",[484,1628,604],{},[484,1630,1631],{},[324,1632,1466],{},[484,1634,1635,1636],{},"Store cache misses. ",[428,1637,430],{},[465,1639,1640,1645,1647,1651],{},[484,1641,1642],{},[324,1643,1644],{},"stoatflow.store.changelog.records.written.total",[484,1646,604],{},[484,1648,1649],{},[324,1650,1466],{},[484,1652,1653],{},"Changelog records written.",[465,1655,1656,1661,1663,1667],{},[484,1657,1658],{},[324,1659,1660],{},"stoatflow.store.changelog.bytes.written.total",[484,1662,604],{},[484,1664,1665],{},[324,1666,1466],{},[484,1668,1669],{},"Changelog bytes written.",[465,1671,1672,1677,1679,1683],{},[484,1673,1674],{},[324,1675,1676],{},"stoatflow.store.commit.changelog.latency",[484,1678,775],{},[484,1680,1681],{},[324,1682,1466],{},[484,1684,1685,1686],{},"Per-store changelog serialization+send latency during the commit epoch. ",[428,1687,430],{},[465,1689,1690,1695,1697,1701],{},[484,1691,1692],{},[324,1693,1694],{},"stoatflow.store.commit.flush.latency",[484,1696,775],{},[484,1698,1699],{},[324,1700,1466],{},[484,1702,1703,1704],{},"Per-store flush latency during the commit epoch. ",[428,1705,430],{},[465,1707,1708,1713,1716,1720],{},[484,1709,1710],{},[324,1711,1712],{},"stoatflow.store.flush.entries",[484,1714,1715],{},"DistributionSummary",[484,1717,1718],{},[324,1719,1466],{},[484,1721,1722,1723],{},"Entry count per epoch flush. ",[428,1724,430],{},[465,1726,1727,1732,1734,1738],{},[484,1728,1729],{},[324,1730,1731],{},"stoatflow.store.flush.sub.batches",[484,1733,1715],{},[484,1735,1736],{},[324,1737,1466],{},[484,1739,1740,1741],{},"Sub-batch count per flush (1 = sequential, N = parallel). ",[428,1742,430],{},[465,1744,1745,1750,1752,1759],{},[484,1746,1747],{},[324,1748,1749],{},"stoatflow.store.num.keys",[484,1751,491],{},[484,1753,1754,501,1756],{},[324,1755,1466],{},[324,1757,1758],{},"store_type",[484,1760,1761,1762,1765],{},"Committed key count of an ",[351,1763,1764],{},"in-memory"," store (KIP-1250 parity); silent for RocksDB-backed stores.",[360,1767,1769],{"id":1768},"state-restoration","State restoration",[459,1771,1772,1784],{},[462,1773,1774],{},[465,1775,1776,1778,1780,1782],{},[468,1777,372],{},[468,1779,472],{},[468,1781,407],{},[468,1783,477],{},[479,1785,1786,1800,1814,1828,1844,1860],{},[465,1787,1788,1793,1795,1797],{},[484,1789,1790],{},[324,1791,1792],{},"stoatflow.restoration.in.progress",[484,1794,491],{},[484,1796,494],{},[484,1798,1799],{},"1 while restoration is running, 0 otherwise.",[465,1801,1802,1807,1809,1811],{},[484,1803,1804],{},[324,1805,1806],{},"stoatflow.restoration.stores.total",[484,1808,491],{},[484,1810,494],{},[484,1812,1813],{},"Total stores to restore.",[465,1815,1816,1821,1823,1825],{},[484,1817,1818],{},[324,1819,1820],{},"stoatflow.restoration.stores.completed",[484,1822,491],{},[484,1824,494],{},[484,1826,1827],{},"Stores that have finished restoring.",[465,1829,1830,1835,1837,1841],{},[484,1831,1832],{},[324,1833,1834],{},"stoatflow.restoration.records.restored.total",[484,1836,604],{},[484,1838,1839],{},[324,1840,1466],{},[484,1842,1843],{},"Records restored, per store.",[465,1845,1846,1851,1853,1857],{},[484,1847,1848],{},[324,1849,1850],{},"stoatflow.restoration.bytes.restored.total",[484,1852,604],{},[484,1854,1855],{},[324,1856,1466],{},[484,1858,1859],{},"Bytes restored, per store.",[465,1861,1862,1867,1869,1873],{},[484,1863,1864],{},[324,1865,1866],{},"stoatflow.restoration.duration.seconds",[484,1868,775],{},[484,1870,1871],{},[324,1872,1466],{},[484,1874,1875],{},"Per-store restoration duration.",[360,1877,1879],{"id":1878},"consumer-producer-and-buffers","Consumer, producer, and buffers",[459,1881,1882,1894],{},[462,1883,1884],{},[465,1885,1886,1888,1890,1892],{},[468,1887,372],{},[468,1889,472],{},[468,1891,407],{},[468,1893,477],{},[479,1895,1896,1910,1924,1938,1958,1976,1994,2008,2022,2036,2056,2076,2092,2108,2126,2146,2166,2186,2206,2226,2240,2254],{},[465,1897,1898,1903,1905,1907],{},[484,1899,1900],{},[324,1901,1902],{},"stoatflow.consumer.poll.latency",[484,1904,775],{},[484,1906,494],{},[484,1908,1909],{},"Consumer poll latency.",[465,1911,1912,1917,1919,1921],{},[484,1913,1914],{},[324,1915,1916],{},"stoatflow.consumer.poll.total",[484,1918,604],{},[484,1920,494],{},[484,1922,1923],{},"Poll invocations.",[465,1925,1926,1931,1933,1935],{},[484,1927,1928],{},[324,1929,1930],{},"stoatflow.consumer.poll.records",[484,1932,1715],{},[484,1934,494],{},[484,1936,1937],{},"Records per poll.",[465,1939,1940,1945,1947,1955],{},[484,1941,1942],{},[324,1943,1944],{},"stoatflow.consumer.records.consumed.total",[484,1946,604],{},[484,1948,1949,501,1952],{},[324,1950,1951],{},"topic",[324,1953,1954],{},"partition",[484,1956,1957],{},"Records consumed.",[465,1959,1960,1965,1967,1973],{},[484,1961,1962],{},[324,1963,1964],{},"stoatflow.consumer.bytes.consumed.total",[484,1966,604],{},[484,1968,1969,501,1971],{},[324,1970,1951],{},[324,1972,1954],{},[484,1974,1975],{},"Bytes consumed.",[465,1977,1978,1983,1985,1991],{},[484,1979,1980],{},[324,1981,1982],{},"stoatflow.consumer.lag.records",[484,1984,491],{},[484,1986,1987,501,1989],{},[324,1988,1951],{},[324,1990,1954],{},[484,1992,1993],{},"Consumer lag, in records.",[465,1995,1996,2001,2003,2005],{},[484,1997,1998],{},[324,1999,2000],{},"stoatflow.consumer.assigned.partitions",[484,2002,491],{},[484,2004,494],{},[484,2006,2007],{},"Number of assigned partitions.",[465,2009,2010,2015,2017,2019],{},[484,2011,2012],{},[324,2013,2014],{},"stoatflow.consumer.partitions.paused",[484,2016,491],{},[484,2018,494],{},[484,2020,2021],{},"Currently paused partitions.",[465,2023,2024,2029,2031,2033],{},[484,2025,2026],{},[324,2027,2028],{},"stoatflow.consumer.partitions.delay.pending",[484,2030,491],{},[484,2032,494],{},[484,2034,2035],{},"Partitions with a pending resume delay.",[465,2037,2038,2043,2045,2053],{},[484,2039,2040],{},[324,2041,2042],{},"stoatflow.consumer.partition.paused.total",[484,2044,604],{},[484,2046,2047,501,2049,501,2051],{},[324,2048,1951],{},[324,2050,1954],{},[324,2052,1121],{},[484,2054,2055],{},"Partition pause events, by reason.",[465,2057,2058,2063,2065,2073],{},[484,2059,2060],{},[324,2061,2062],{},"stoatflow.consumer.partition.resumed.total",[484,2064,604],{},[484,2066,2067,501,2069,501,2071],{},[324,2068,1951],{},[324,2070,1954],{},[324,2072,1121],{},[484,2074,2075],{},"Partition resume events, by reason.",[465,2077,2078,2083,2085,2089],{},[484,2079,2080],{},[324,2081,2082],{},"stoatflow.producer.records.produced.total",[484,2084,604],{},[484,2086,2087],{},[324,2088,1951],{},[484,2090,2091],{},"Records produced.",[465,2093,2094,2099,2101,2105],{},[484,2095,2096],{},[324,2097,2098],{},"stoatflow.producer.bytes.produced.total",[484,2100,604],{},[484,2102,2103],{},[324,2104,1951],{},[484,2106,2107],{},"Bytes produced.",[465,2109,2110,2115,2117,2121],{},[484,2111,2112],{},[324,2113,2114],{},"stoatflow.producer.send.latency",[484,2116,775],{},[484,2118,2119],{},[324,2120,1951],{},[484,2122,2123,2124],{},"Producer send latency. ",[428,2125,430],{},[465,2127,2128,2133,2135,2141],{},[484,2129,2130],{},[324,2131,2132],{},"stoatflow.buffer.partition.size",[484,2134,491],{},[484,2136,2137,501,2139],{},[324,2138,1951],{},[324,2140,1954],{},[484,2142,2143,2144],{},"Current partition buffer depth. ",[428,2145,430],{},[465,2147,2148,2153,2155,2161],{},[484,2149,2150],{},[324,2151,2152],{},"stoatflow.buffer.partition.capacity",[484,2154,491],{},[484,2156,2157,501,2159],{},[324,2158,1951],{},[324,2160,1954],{},[484,2162,2163,2164],{},"Partition buffer capacity. ",[428,2165,430],{},[465,2167,2168,2173,2175,2181],{},[484,2169,2170],{},[324,2171,2172],{},"stoatflow.buffer.offer.total",[484,2174,491],{},[484,2176,2177,501,2179],{},[324,2178,1951],{},[324,2180,1954],{},[484,2182,2183,2184],{},"Cumulative records offered to the partition buffer. ",[428,2185,430],{},[465,2187,2188,2193,2195,2201],{},[484,2189,2190],{},[324,2191,2192],{},"stoatflow.buffer.poll.total",[484,2194,491],{},[484,2196,2197,501,2199],{},[324,2198,1951],{},[324,2200,1954],{},[484,2202,2203,2204],{},"Cumulative records polled from the partition buffer. ",[428,2205,430],{},[465,2207,2208,2213,2215,2221],{},[484,2209,2210],{},[324,2211,2212],{},"stoatflow.buffer.oldest.age.ms",[484,2214,491],{},[484,2216,2217,501,2219],{},[324,2218,1951],{},[324,2220,1954],{},[484,2222,2223,2224],{},"Age of the oldest buffered record. ",[428,2225,430],{},[465,2227,2228,2233,2235,2237],{},[484,2229,2230],{},[324,2231,2232],{},"stoatflow.buffer.scheduled.source.size",[484,2234,491],{},[484,2236,494],{},[484,2238,2239],{},"Scheduled-source dispatch buffer depth.",[465,2241,2242,2247,2249,2251],{},[484,2243,2244],{},[324,2245,2246],{},"stoatflow.buffer.timer.event.size",[484,2248,491],{},[484,2250,494],{},[484,2252,2253],{},"Event-time timer buffer depth.",[465,2255,2256,2261,2263,2265],{},[484,2257,2258],{},[324,2259,2260],{},"stoatflow.buffer.timer.processing.size",[484,2262,491],{},[484,2264,494],{},[484,2266,2267],{},"Processing-time timer buffer depth.",[360,2269,2271],{"id":2270},"dispatcher-internals","Dispatcher internals",[459,2273,2274,2286],{},[462,2275,2276],{},[465,2277,2278,2280,2282,2284],{},[468,2279,372],{},[468,2281,472],{},[468,2283,407],{},[468,2285,477],{},[479,2287,2288,2304,2320,2334,2348,2374,2390],{},[465,2289,2290,2295,2297,2299],{},[484,2291,2292],{},[324,2293,2294],{},"stoatflow.dispatcher.batch.size",[484,2296,1715],{},[484,2298,494],{},[484,2300,2301,2302],{},"Records per dispatch batch. ",[428,2303,430],{},[465,2305,2306,2311,2313,2315],{},[484,2307,2308],{},[324,2309,2310],{},"stoatflow.dispatcher.batch.held.total",[484,2312,604],{},[484,2314,494],{},[484,2316,2317,2318],{},"Batches held because a target lane lacked capacity. ",[428,2319,430],{},[465,2321,2322,2327,2329,2331],{},[484,2323,2324],{},[324,2325,2326],{},"stoatflow.dispatcher.dispatch.latency",[484,2328,775],{},[484,2330,494],{},[484,2332,2333],{},"Per-batch dispatch latency.",[465,2335,2336,2341,2343,2345],{},[484,2337,2338],{},[324,2339,2340],{},"stoatflow.parallel.deser.activated.total",[484,2342,604],{},[484,2344,494],{},[484,2346,2347],{},"Times parallel deserialization was activated.",[465,2349,2350,2355,2357,2362],{},[484,2351,2352],{},[324,2353,2354],{},"stoatflow.queue.offer.failure.total",[484,2356,604],{},[484,2358,2359],{},[324,2360,2361],{},"queue_type",[484,2363,2364,2365,501,2368,501,2371,1140],{},"Internal queue offer rejections (",[324,2366,2367],{},"lane",[324,2369,2370],{},"partition_buffer",[324,2372,2373],{},"commit",[465,2375,2376,2381,2383,2385],{},[484,2377,2378],{},[324,2379,2380],{},"stoatflow.coordinator.select.latency",[484,2382,775],{},[484,2384,494],{},[484,2386,2387,2388],{},"Time spent selecting the next timestamp-ordered batch. ",[428,2389,430],{},[465,2391,2392,2397,2399,2401],{},[484,2393,2394],{},[324,2395,2396],{},"stoatflow.coordinator.partition.switches",[484,2398,1715],{},[484,2400,494],{},[484,2402,2403,2404],{},"Partition switches per selected batch. ",[428,2405,430],{},[360,2407,2409],{"id":2408},"watermarks-and-event-time","Watermarks and event time",[459,2411,2412,2424],{},[462,2413,2414],{},[465,2415,2416,2418,2420,2422],{},[468,2417,372],{},[468,2419,472],{},[468,2421,407],{},[468,2423,477],{},[479,2425,2426,2440,2454,2468,2488,2508,2524,2547,2565],{},[465,2427,2428,2433,2435,2437],{},[484,2429,2430],{},[324,2431,2432],{},"stoatflow.watermark.current",[484,2434,491],{},[484,2436,494],{},[484,2438,2439],{},"Current global watermark (epoch ms).",[465,2441,2442,2447,2449,2451],{},[484,2443,2444],{},[324,2445,2446],{},"stoatflow.watermark.lag.ms",[484,2448,491],{},[484,2450,494],{},[484,2452,2453],{},"Wall-clock time minus watermark (event-time lag).",[465,2455,2456,2461,2463,2465],{},[484,2457,2458],{},[324,2459,2460],{},"stoatflow.watermark.advance.total",[484,2462,604],{},[484,2464,494],{},[484,2466,2467],{},"Watermark advancement events.",[465,2469,2470,2475,2477,2483],{},[484,2471,2472],{},[324,2473,2474],{},"stoatflow.watermark.partition.current",[484,2476,491],{},[484,2478,2479,501,2481],{},[324,2480,1951],{},[324,2482,1954],{},[484,2484,2485,2486],{},"Per-partition watermark. ",[428,2487,430],{},[465,2489,2490,2495,2497,2503],{},[484,2491,2492],{},[324,2493,2494],{},"stoatflow.watermark.late.records.total",[484,2496,604],{},[484,2498,2499,501,2501],{},[324,2500,1951],{},[324,2502,1954],{},[484,2504,2505,2506],{},"Records arriving after the watermark. ",[428,2507,430],{},[465,2509,2510,2515,2517,2519],{},[484,2511,2512],{},[324,2513,2514],{},"stoatflow.watermark.out.of.orderness.max",[484,2516,491],{},[484,2518,494],{},[484,2520,2521,2522],{},"Maximum observed out-of-orderness (ms). ",[428,2523,430],{},[465,2525,2526,2531,2533,2542],{},[484,2527,2528],{},[324,2529,2530],{},"stoatflow.watermark.alignment.drift.ms",[484,2532,491],{},[484,2534,2535,501,2537,501,2539],{},[324,2536,1951],{},[324,2538,1954],{},[324,2540,2541],{},"group",[484,2543,2544,2545],{},"Per-partition drift above the alignment group's minimum watermark. ",[428,2546,430],{},[465,2548,2549,2554,2556,2560],{},[484,2550,2551],{},[324,2552,2553],{},"stoatflow.watermark.alignment.group.min",[484,2555,491],{},[484,2557,2558],{},[324,2559,2541],{},[484,2561,2562,2563],{},"Minimum watermark across the alignment group (epoch ms). ",[428,2564,430],{},[465,2566,2567,2572,2574,2578],{},[484,2568,2569],{},[324,2570,2571],{},"stoatflow.watermark.alignment.partitions.paused",[484,2573,491],{},[484,2575,2576],{},[324,2577,2541],{},[484,2579,2580],{},"Partitions currently paused for watermark alignment.",[360,2582,2584],{"id":2583},"timers-punctuators-and-scheduled-sources","Timers, punctuators, and scheduled sources",[459,2586,2587,2599],{},[462,2588,2589],{},[465,2590,2591,2593,2595,2597],{},[468,2592,372],{},[468,2594,472],{},[468,2596,407],{},[468,2598,477],{},[479,2600,2601,2624,2640,2656,2672,2690,2708,2730,2746,2760,2780,2799],{},[465,2602,2603,2608,2610,2615],{},[484,2604,2605],{},[324,2606,2607],{},"stoatflow.timer.registered.total",[484,2609,604],{},[484,2611,2612],{},[324,2613,2614],{},"type",[484,2616,2617,2618,501,2621,1140],{},"Keyed timers registered (",[324,2619,2620],{},"event_time",[324,2622,2623],{},"processing_time",[465,2625,2626,2631,2633,2637],{},[484,2627,2628],{},[324,2629,2630],{},"stoatflow.timer.fired.total",[484,2632,604],{},[484,2634,2635],{},[324,2636,2614],{},[484,2638,2639],{},"Timers fired.",[465,2641,2642,2647,2649,2653],{},[484,2643,2644],{},[324,2645,2646],{},"stoatflow.timer.deleted.total",[484,2648,604],{},[484,2650,2651],{},[324,2652,2614],{},[484,2654,2655],{},"Timers explicitly deleted.",[465,2657,2658,2663,2665,2669],{},[484,2659,2660],{},[324,2661,2662],{},"stoatflow.timer.queue.size",[484,2664,491],{},[484,2666,2667],{},[324,2668,2614],{},[484,2670,2671],{},"Timer dispatch-buffer depth, by timer type.",[465,2673,2674,2679,2681,2685],{},[484,2675,2676],{},[324,2677,2678],{},"stoatflow.timer.fire.latency",[484,2680,775],{},[484,2682,2683],{},[324,2684,2614],{},[484,2686,2687,2688],{},"Delay between scheduled and actual fire time. ",[428,2689,430],{},[465,2691,2692,2697,2699,2703],{},[484,2693,2694],{},[324,2695,2696],{},"stoatflow.timer.fire.late.total",[484,2698,604],{},[484,2700,2701],{},[324,2702,2614],{},[484,2704,2705,2706],{},"Timers that fired late. ",[428,2707,430],{},[465,2709,2710,2715,2717,2727],{},[484,2711,2712],{},[324,2713,2714],{},"stoatflow.punctuator.invocation.total",[484,2716,604],{},[484,2718,2719,501,2722,501,2724],{},[324,2720,2721],{},"punctuator_id",[324,2723,2614],{},[324,2725,2726],{},"mode",[484,2728,2729],{},"Punctuator invocations.",[465,2731,2732,2737,2739,2743],{},[484,2733,2734],{},[324,2735,2736],{},"stoatflow.punctuator.skip.total",[484,2738,604],{},[484,2740,2741],{},[324,2742,2721],{},[484,2744,2745],{},"Punctuator invocations skipped (previous run still active).",[465,2747,2748,2753,2755,2757],{},[484,2749,2750],{},[324,2751,2752],{},"stoatflow.punctuator.active",[484,2754,491],{},[484,2756,494],{},[484,2758,2759],{},"Currently registered punctuators.",[465,2761,2762,2767,2769,2775],{},[484,2763,2764],{},[324,2765,2766],{},"stoatflow.punctuator.execution.latency",[484,2768,775],{},[484,2770,2771,501,2773],{},[324,2772,2721],{},[324,2774,2614],{},[484,2776,2777,2778],{},"Punctuator execution time. ",[428,2779,430],{},[465,2781,2782,2787,2789,2796],{},[484,2783,2784],{},[324,2785,2786],{},"stoatflow.scheduled.source.trigger.total",[484,2788,604],{},[484,2790,2791,501,2794],{},[324,2792,2793],{},"source_name",[324,2795,2614],{},[484,2797,2798],{},"Scheduled source triggers.",[465,2800,2801,2806,2808,2812],{},[484,2802,2803],{},[324,2804,2805],{},"stoatflow.scheduled.source.records.emitted.total",[484,2807,604],{},[484,2809,2810],{},[324,2811,2793],{},[484,2813,2814],{},"Records emitted by scheduled sources.",[360,2816,2818],{"id":2817},"error-handling","Error handling",[459,2820,2821,2833],{},[462,2822,2823],{},[465,2824,2825,2827,2829,2831],{},[468,2826,372],{},[468,2828,472],{},[468,2830,407],{},[468,2832,477],{},[479,2834,2835,2856,2875,2899,2918],{},[465,2836,2837,2842,2844,2850],{},[484,2838,2839],{},[324,2840,2841],{},"stoatflow.error.total",[484,2843,604],{},[484,2845,2846,501,2848],{},[324,2847,879],{},[324,2849,1951],{},[484,2851,2852,2853,2855],{},"Errors by type (",[324,2854,1951],{}," omitted when unknown).",[465,2857,2858,2863,2865,2872],{},[484,2859,2860],{},[324,2861,2862],{},"stoatflow.error.typed.total",[484,2864,604],{},[484,2866,2867,501,2870],{},[324,2868,2869],{},"category",[324,2871,879],{},[484,2873,2874],{},"Categorised errors (e.g. production failures), by category and type.",[465,2876,2877,2882,2884,2888],{},[484,2878,2879],{},[324,2880,2881],{},"stoatflow.dropped.records.total",[484,2883,604],{},[484,2885,2886],{},[324,2887,1121],{},[484,2889,2890,2891,2894,2895,2898],{},"Records dropped before processing (e.g. ",[324,2892,2893],{},"null_key","; KS ",[324,2896,2897],{},"dropped-records"," parity).",[465,2900,2901,2906,2908,2915],{},[484,2902,2903],{},[324,2904,2905],{},"stoatflow.sink.records.dropped.total",[484,2907,604],{},[484,2909,2910,501,2913],{},[324,2911,2912],{},"sink_name",[324,2914,1951],{},[484,2916,2917],{},"Records dropped because a custom partitioner returned no partition (KIP-837).",[465,2919,2920,2925,2927,2933],{},[484,2921,2922],{},[324,2923,2924],{},"stoatflow.sink.records.multicast.total",[484,2926,604],{},[484,2928,2929,501,2931],{},[324,2930,2912],{},[324,2932,1951],{},[484,2934,2935],{},"Output records produced via multicast — a custom partitioner returned multiple partitions (KIP-837).",[360,2937,233],{"id":2938},"high-availability",[320,2940,2941,2942,2945,2946,1140],{},"Registered only when ",[337,2943,2944],{"href":234},"hot standby"," is enabled (",[324,2947,2948],{},"ha.mode != off",[459,2950,2951,2963],{},[462,2952,2953],{},[465,2954,2955,2957,2959,2961],{},[468,2956,372],{},[468,2958,472],{},[468,2960,407],{},[468,2962,477],{},[479,2964,2965,2986,3003,3021,3035,3049,3063,3079,3097,3116,3130,3159],{},[465,2966,2967,2972,2974,2976],{},[484,2968,2969],{},[324,2970,2971],{},"stoatflow.ha.role",[484,2973,491],{},[484,2975,494],{},[484,2977,2978,2981,2982,2985],{},[324,2979,2980],{},"1"," when this pod is the active, ",[324,2983,2984],{},"0"," when standby.",[465,2987,2988,2993,2995,2997],{},[484,2989,2990],{},[324,2991,2992],{},"stoatflow.ha.standby.replication.lag.records",[484,2994,491],{},[484,2996,494],{},[484,2998,2999,3000,3002],{},"Total committed-changelog lag in records across all changelog partitions; ",[324,3001,2984],{}," when active or caught up.",[465,3004,3005,3010,3012,3014],{},[484,3006,3007],{},[324,3008,3009],{},"stoatflow.ha.standby.replication.applied.records",[484,3011,604],{},[484,3013,494],{},[484,3015,3016,3017,3020],{},"Cumulative changelog records the standby applier has applied; ",[324,3018,3019],{},"rate(...)"," = apply throughput.",[465,3022,3023,3028,3030,3032],{},[484,3024,3025],{},[324,3026,3027],{},"stoatflow.ha.standby.replication.lag.ms",[484,3029,491],{},[484,3031,494],{},[484,3033,3034],{},"Standby replication lag in milliseconds.",[465,3036,3037,3042,3044,3046],{},[484,3038,3039],{},[324,3040,3041],{},"stoatflow.ha.peer.freshness.ms",[484,3043,491],{},[484,3045,494],{},[484,3047,3048],{},"Time since the freshest observed peer's last heartbeat.",[465,3050,3051,3056,3058,3060],{},[484,3052,3053],{},[324,3054,3055],{},"stoatflow.ha.peers",[484,3057,491],{},[484,3059,494],{},[484,3061,3062],{},"Number of observed HA peers.",[465,3064,3065,3070,3072,3074],{},[484,3066,3067],{},[324,3068,3069],{},"stoatflow.ha.restart.required",[484,3071,491],{},[484,3073,494],{},[484,3075,3076,3078],{},[324,3077,2980],{}," when this pod needs a restart (e.g. after a source-topic partition-count change).",[465,3080,3081,3086,3088,3090],{},[484,3082,3083],{},[324,3084,3085],{},"stoatflow.ha.redundancy.ready.standbys",[484,3087,491],{},[484,3089,494],{},[484,3091,3092,3093,3096],{},"Caught-up (",[324,3094,3095],{},"READY_STANDBY",") fresh standby count, including self.",[465,3098,3099,3104,3106,3108],{},[484,3100,3101],{},[324,3102,3103],{},"stoatflow.ha.redundancy.below.desired",[484,3105,491],{},[484,3107,494],{},[484,3109,3110,3112,3113,342],{},[324,3111,2980],{}," when the active has fewer ready standby spares than ",[324,3114,3115],{},"ha.desired-standbys",[465,3117,3118,3123,3125,3127],{},[484,3119,3120],{},[324,3121,3122],{},"stoatflow.ha.token.epoch",[484,3124,491],{},[484,3126,494],{},[484,3128,3129],{},"Current promotion-token epoch on the metadata topic.",[465,3131,3132,3137,3139,3144],{},[484,3133,3134],{},[324,3135,3136],{},"stoatflow.ha.election.outcome",[484,3138,604],{},[484,3140,3141],{},[324,3142,3143],{},"outcome",[484,3145,3146,3147,501,3150,501,3153,501,3156,342],{},"Cumulative election outcomes: ",[324,3148,3149],{},"won",[324,3151,3152],{},"reclaimed",[324,3154,3155],{},"stood_down_fresh",[324,3157,3158],{},"stood_down_lost",[465,3160,3161,3166,3168,3170],{},[484,3162,3163],{},[324,3164,3165],{},"stoatflow.ha.election.latency.ms",[484,3167,491],{},[484,3169,494],{},[484,3171,3172,3173,3175],{},"Last claim-to-ACTIVE promotion latency (ms); ",[324,3174,1078],{}," until the first promotion.",[360,3177,3179],{"id":3178},"license","License",[320,3181,3182,3183,342],{},"Registered once at startup; exported at every recording level. See ",[337,3184,23],{"href":24},[459,3186,3187,3199],{},[462,3188,3189],{},[465,3190,3191,3193,3195,3197],{},[468,3192,372],{},[468,3194,472],{},[468,3196,407],{},[468,3198,477],{},[479,3200,3201,3222,3236,3250,3264,3278,3292,3309],{},[465,3202,3203,3208,3210,3215],{},[484,3204,3205],{},[324,3206,3207],{},"stoatflow.license.valid",[484,3209,491],{},[484,3211,3212],{},[324,3213,3214],{},"tier",[484,3216,3217,3219,3220,342],{},[324,3218,2980],{}," under a VALID or GRACE_PERIOD license, else ",[324,3221,2984],{},[465,3223,3224,3229,3231,3233],{},[484,3225,3226],{},[324,3227,3228],{},"stoatflow.license.expiry_timestamp_seconds",[484,3230,491],{},[484,3232,494],{},[484,3234,3235],{},"Unix epoch seconds of the license entitlement deadline.",[465,3237,3238,3243,3245,3247],{},[484,3239,3240],{},[324,3241,3242],{},"stoatflow.license.days_remaining",[484,3244,491],{},[484,3246,494],{},[484,3248,3249],{},"Whole days until expiry; negative within the post-expiry grace window.",[465,3251,3252,3257,3259,3261],{},[484,3253,3254],{},[324,3255,3256],{},"stoatflow.license.grace_remaining_seconds",[484,3258,491],{},[484,3260,494],{},[484,3262,3263],{},"Seconds left in the offline-grace budget; floored at 0.",[465,3265,3266,3271,3273,3275],{},[484,3267,3268],{},[324,3269,3270],{},"stoatflow.license.heartbeat_consecutive_failures",[484,3272,491],{},[484,3274,494],{},[484,3276,3277],{},"Heartbeat ticks failed since the last success.",[465,3279,3280,3285,3287,3289],{},[484,3281,3282],{},[324,3283,3284],{},"stoatflow.license.heartbeat_last_success_timestamp_seconds",[484,3286,491],{},[484,3288,494],{},[484,3290,3291],{},"Unix epoch seconds of the last successful heartbeat.",[465,3293,3294,3299,3301,3306],{},[484,3295,3296],{},[324,3297,3298],{},"stoatflow.license.validations_total",[484,3300,604],{},[484,3302,3303],{},[324,3304,3305],{},"result",[484,3307,3308],{},"Cold-start validation outcomes, by result.",[465,3310,3311,3316,3318,3322],{},[484,3312,3313],{},[324,3314,3315],{},"stoatflow.license.heartbeats_total",[484,3317,604],{},[484,3319,3320],{},[324,3321,3305],{},[484,3323,3324],{},"Heartbeat tick outcomes, by result.",[360,3326,3328],{"id":3327},"jvm-system-and-kafka-client-meters","JVM, system, and Kafka-client meters",[320,3330,3331,3332,3335],{},"Beyond the ",[324,3333,3334],{},"stoatflow.*"," meters above, the same endpoint carries:",[365,3337,3338,3358],{},[368,3339,3340,3343,3344,501,3347,501,3350,3353,3354,3357],{},[351,3341,3342],{},"JVM and system meters"," (",[324,3345,3346],{},"jvm_*",[324,3348,3349],{},"system_*",[324,3351,3352],{},"process_*",") — bound by default (",[324,3355,3356],{},"runtime.metrics.bind-jvm-metrics: true","): heap\u002Fnon-heap memory, GC pauses, thread counts, classloading, CPU usage.",[368,3359,3360,3343,3363,501,3366,3369],{},[351,3361,3362],{},"Native Kafka client meters",[324,3364,3365],{},"kafka_consumer_*",[324,3367,3368],{},"kafka_producer_*",") — the Kafka clients' own JMX metrics surfaced through Micrometer.",[320,3371,3372,3373,3375,3376,3379,3380,3382,3383,3385],{},"These carry the registry common tags (",[324,3374,415],{}," plus your ",[324,3377,3378],{},"common-tags",") but not ",[324,3381,411],{},". See ",[337,3384,195],{"href":196}," for details.",[360,3387,3389],{"id":3388},"next-steps","Next steps",[365,3391,3392,3399,3409],{},[368,3393,3394,3398],{},[351,3395,3396],{},[337,3397,195],{"href":196}," — enabling, scraping, recording levels, naming and tag conventions, PromQL examples.",[368,3400,3401,3405,3406,3408],{},[351,3402,3403],{},[337,3404,243],{"href":244}," — wiring ",[324,3407,357],{}," into a monitoring stack and what to alert on.",[368,3410,3411,3415,3416,3419],{},[351,3412,3413],{},[337,3414,281],{"href":282}," — the ",[324,3417,3418],{},"runtime.metrics.*"," keys.",{"title":3421,"searchDepth":3422,"depth":3422,"links":3423},"",2,[3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438],{"id":362,"depth":3422,"text":363},{"id":456,"depth":3422,"text":457},{"id":663,"depth":3422,"text":664},{"id":820,"depth":3422,"text":821},{"id":1459,"depth":3422,"text":1460},{"id":1768,"depth":3422,"text":1769},{"id":1878,"depth":3422,"text":1879},{"id":2270,"depth":3422,"text":2271},{"id":2408,"depth":3422,"text":2409},{"id":2583,"depth":3422,"text":2584},{"id":2817,"depth":3422,"text":2818},{"id":2938,"depth":3422,"text":233},{"id":3178,"depth":3422,"text":3179},{"id":3327,"depth":3422,"text":3328},{"id":3388,"depth":3422,"text":3389},"The full catalogue of Prometheus meters StoatFlow exposes on \u002Fmetrics — name, type, tags, and what each one measures, grouped by area.","md",{},{"icon":170},"reference",{"title":306,"description":3439},"G-ZnuUfMSA6vQtGud4d1EH5PMhIWM_D2GHoc0i9Eqn4",[3447,3449],{"title":301,"path":302,"stem":303,"description":3448,"icon":304,"children":-1},"Operator-by-operator parity between the StoatFlow DSL and the Kafka Streams DSL — implemented, partial, not yet implemented, deprecated, incompatible, and StoatFlow extensions.",{"title":310,"path":311,"stem":312,"description":3450,"icon":313,"children":-1},"Concise definitions of the terms used across the StoatFlow docs — lanes, commit barriers, epochs, watermarks, event time, changelog, state stores, serdes, repartitioning, and exactly-once.",1783713365203]