1"use strict";(globalThis.webpackChunkdocs_oasis_io=globalThis.webpackChunkdocs_oasis_io||[]).push([[1053],{16790:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>n,contentTitle:()=>d,default:()=>l,frontMatter:()=>c,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"core/oasis-node/metrics","title":"Metrics","description":"oasis-node can report a number of metrics to Prometheus server. By default,","source":"@site/docs/core/oasis-node/metrics.md","sourceDirName":"core/oasis-node","slug":"/core/oasis-node/metrics","permalink":"/core/oasis-node/metrics","draft":false,"unlisted":false,"editUrl":"https://github.com/oasisprotocol/oasis-core/edit/stable/24.2.x/docs/oasis-node/metrics.md","tags":[],"version":"current","lastUpdatedAt":1775666640000,"frontMatter":{"sidebar_custom_props":{}},"sidebar":"oasisCore","previous":{"title":"RPC","permalink":"/core/oasis-node/rpc"},"next":{"title":"oasis-node CLI","permalink":"/core/oasis-node/cli"}}');var o=s(74848),i=s(28453);const c={sidebar_custom_props:{tags:void 0}},d="Metrics",n={},a=[{value:"Configuring <code>oasis-node</code> in Pull Mode",id:"configuring-oasis-node-in-pull-mode",level:2},{value:"Metrics Reported by <code>oasis-node</code>",id:"metrics-reported-by-oasis-node",level:2},{value:"Consensus backends",id:"consensus-backends",level:2},{value:"Metrics Reported by <em>CometBFT</em>",id:"metrics-reported-by-cometbft",level:3}];function h(e){const r={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"metrics",children:"Metrics"})}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.code,{children:"oasis-node"})," can report a number of metrics to Prometheus server. By default,\nno metrics are collected and reported. There is one way to enable metrics\nreporting:"]}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.em,{children:"Pull mode"})," listens on given address and waits for Prometheus to scrape the\nmetrics."]}),"\n"]}),"\n",(0,o.jsxs)(r.h2,{id:"configuring-oasis-node-in-pull-mode",children:["Configuring ",(0,o.jsx)(r.code,{children:"oasis-node"})," in Pull Mode"]}),"\n",(0,o.jsxs)(r.p,{children:["To run ",(0,o.jsx)(r.code,{children:"oasis-node"})," in ",(0,o.jsx)(r.em,{children:"pull mode"})," with Prometheus metrics enabled, add the\nfollowing to your ",(0,o.jsx)(r.code,{children:"config.yml"}),"."]}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{children:"metrics:\n mode: pull\n address: 0.0.0.0:3000\n"})}),"\n",(0,o.jsx)(r.p,{children:"After restarting the node, Prometheus metrics will be exposed on port 3000."}),"\n",(0,o.jsxs)(r.p,{children:["Then, add the following segment to your ",(0,o.jsx)(r.code,{children:"prometheus.yml"})," and restart\nPrometheus:"]}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-yaml",children:" - job_name : 'oasis-node'\n\n scrape_interval: 5s\n\n static_configs:\n - targets: ['localhost:3000']\n"})}),"\n",(0,o.jsxs)(r.h2,{id:"metrics-reported-by-oasis-node",children:["Metrics Reported by ",(0,o.jsx)(r.code,{children:"oasis-node"})]}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.code,{children:"oasis-node"})," reports metrics starting with ",(0,o.jsx)(r.code,{children:"oasis_"}),"."]}),"\n",(0,o.jsx)(r.p,{children:"The following metrics are currently reported:"}),"\n",(0,o.jsxs)(r.table,{children:[(0,o.jsx)(r.thead,{children:(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.th,{children:"Name"}),(0,o.jsx)(r.th,{children:"Type"}),(0,o.jsx)(r.th,{children:"Description"}),(0,o.jsx)(r.th,{children:"Labels"}),(0,o.jsx)(r.th,{children:"Package"})]})}),(0,o.jsxs)(r.tbody,{children:[(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_abci_db_size"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Total size of the ABCI database (MiB)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/consensus/cometbft/abci/mux.go",children:"consensus/cometbft/abci"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_codec_size"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"CBOR codec message size (bytes)."}),(0,o.jsx)(r.td,{children:"call, module"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/common/cbor/codec.go",children:"common/cbor"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_consensus_proposed_blocks"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of blocks proposed by the node."}),(0,o.jsx)(r.td,{children:"backend"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/consensus/metrics/metrics.go",children:"consensus/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_consensus_signed_blocks"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of blocks signed by the node."}),(0,o.jsx)(r.td,{children:"backend"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/consensus/metrics/metrics.go",children:"consensus/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_finalized_rounds"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of finalized rounds."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/roothash/metrics.go",children:"roothash"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_grpc_client_calls"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of gRPC calls."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/common/grpc/grpc.go",children:"common/grpc"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_grpc_client_latency"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"gRPC call latency (seconds)."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/common/grpc/grpc.go",children:"common/grpc"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_grpc_client_stream_writes"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of gRPC stream writes."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/common/grpc/grpc.go",children:"common/grpc"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_grpc_server_calls"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of gRPC calls."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/common/grpc/grpc.go",children:"common/grpc"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_grpc_server_latency"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"gRPC call latency (seconds)."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/common/grpc/grpc.go",children:"common/grpc"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_grpc_server_stream_writes"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of gRPC stream writes."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/common/grpc/grpc.go",children:"common/grpc"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_cpu_stime_seconds"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"CPU system time spent by worker as reported by /proc/<PID>/stat (seconds)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/cpu.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_cpu_utime_seconds"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"CPU user time spent by worker as reported by /proc/<PID>/stat (seconds)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/cpu.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_disk_read_bytes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Read data from block storage by the worker as reported by /proc/<PID>/io (bytes)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/disk.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_disk_usage_b
1ytes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Size of datadir of the worker (bytes)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/disk.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_disk_written_bytes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Written data from block storage by the worker as reported by /proc/<PID>/io (bytes)"}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/disk.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_mem_rss_anon_bytes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Size of resident anonymous memory of worker as reported by /proc/<PID>/status (bytes)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/mem.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_mem_rss_file_bytes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Size of resident file mappings of worker as reported by /proc/<PID>/status (bytes)"}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/mem.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_mem_rss_shmem_bytes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Size of resident shared memory of worker."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/mem.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_mem_vm_size_bytes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Virtual memory size of worker (bytes)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/mem.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_net_receive_bytes_total"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Received data for each network device as reported by /proc/net/dev (bytes)."}),(0,o.jsx)(r.td,{children:"device"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/net.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_net_receive_packets_total"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Received data for each network device as reported by /proc/net/dev (packets)."}),(0,o.jsx)(r.td,{children:"device"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/net.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_net_transmit_bytes_total"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Transmitted data for each network device as reported by /proc/net/dev (bytes)."}),(0,o.jsx)(r.td,{children:"device"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/net.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_node_net_transmit_packets_total"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Transmitted data for each network device as reported by /proc/net/dev (packets)."}),(0,o.jsx)(r.td,{children:"device"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/net.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_p2p_blocked_peers"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of blocked P2P peers."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/p2p/metrics.go",children:"p2p"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_p2p_connections"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of P2P connections."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/p2p/metrics.go",children:"p2p"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_p2p_peers"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of connected P2P peers."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/p2p/metrics.go",children:"p2p"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_p2p_protocols"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of supported P2P protocols."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/p2p/metrics.go",children:"p2p"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_p2p_topics"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of supported P2P topics."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/p2p/metrics.go",children:"p2p"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_registry_entities"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of registry entities."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/registry/metrics.go",children:"registry"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_registry_nodes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of registry nodes."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/registry/metrics.go",children:"registry"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_registry_runtimes"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of registry runtimes."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/registry/metrics.go",children:"registry"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_rhp_failures"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of failed Runtime Host calls."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/protocol/metrics.go",children:"runtime/host/protocol"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_rhp_latency"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Runtime Host call latency (seconds)."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/protocol/metrics.go",children:"runtime/host/protocol"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_rhp_successes"}),(0,o.jsx)(r.td,{children:"Counter"}
1),(0,o.jsx)(r.td,{children:"Number of successful Runtime Host calls."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/protocol/metrics.go",children:"runtime/host/protocol"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_rhp_timeouts"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of timed out Runtime Host calls."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/protocol/metrics.go",children:"runtime/host/protocol"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_roothash_block_interval"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Time between roothash blocks (seconds)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/roothash/metrics.go",children:"roothash"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_storage_failures"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of storage failures."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/storage/api/metrics.go",children:"storage/api"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_storage_latency"}),(0,o.jsx)(r.td,{children:"Summary"}
1),(0,o.jsx)(r.td,{children:"Storage call latency (seconds)."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/storage/api/metrics.go",children:"storage/api"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_storage_successes"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of storage successes."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/storage/api/metrics.go",children:"storage/api"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_storage_value_size"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Storage call value size (bytes)."}),(0,o.jsx)(r.td,{children:"call"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/storage/api/metrics.go",children:"storage/api"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_tee_attestations_failed"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of failed TEE attestations."}),(0,o.jsx)(r.td,{children:"runtime, kind"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/sgx/common/metrics.go",children:"runtime/host/sgx/common"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_tee_attestations_performed"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of TEE attestations performed."}),(0,o.jsx)(r.td,{children:"runtime, kind"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/sgx/common/metrics.go",children:"runtime/host/sgx/common"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_tee_attestations_successful"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of successful TEE attestations."}),(0,o.jsx)(r.td,{children:"runtime, kind"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/sgx/common/metrics.go",children:"runtime/host/sgx/common"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_txpool_accepted_transactions"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of accepted transactions (passing check tx)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/txpool/metrics.go",children:"runtime/txpool"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_txpool_pending_check_size"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Size of the pending to be checked queue (number of entries)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/txpool/metrics.go",children:"runtime/txpool"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_txpool_pending_schedule_size"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Size of the main schedulable queue (number of entries)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/txpool/metrics.go",children:"runtime/txpool"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_txpool_rejected_transactions"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of rejected transactions (failing check tx)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/txpool/metrics.go",children:"runtime/txpool"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_txpool_rim_queue_size"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Size of the roothash incoming message transactions schedulable queue (number of entries)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/txpool/metrics.go",children:"runtime/txpool"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_up"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Is oasis-test-runner active for specific sce
1nario."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/oasis-node/cmd/common/metrics/metrics.go",children:"oasis-node/cmd/common/metrics"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_aborted_batch_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of aborted batches."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/compute/executor/committee/metrics.go",children:"worker/compute/executor/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_batch_processing_time"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Time it takes for a batch to finalize (seconds)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/compute/executor/committee/metrics.go",children:"worker/compute/executor/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_batch_runtime_processing_time"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Time it takes for a batch to be processed by the runtime (seconds)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/compute/executor/committee/metrics.go",children:"worker/compute/executor/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_batch_size"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Number of transactions in a batch."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/compute/executor/committee/metrics.go",children:"worker/compute/executor/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_client_lb_healthy_instance_count"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of healthy instances in the load balancer."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/loadbalance/metrics.go",children:"runtime/host/loadbalance"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_client_lb_requests"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of requests processed by the given load balancer instance."}),(0,o.jsx)(r.td,{children:"runtime, lb_instance"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/runtime/host/loadbalance/metrics.go",children:"runtime/host/loadbalance"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_committee_transition_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of committee transitions."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Current epoch number as seen by the worker."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_execution_discrepancy_detected_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of detected execute discrepancies."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/compute/executor/committee/metrics.go",children:"worker/compute/executor/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_executor_committee_p2p_peers"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of executor committee P2P peers."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_executor_is_backup_worker"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"1 if worker is currently an executor backup worker, 0 otherwise."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_executor_is_worker"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"1 if worker is currently an executor worker, 0 otherwise."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_executor_liveness_live_ratio"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Ratio between live and total rounds. Reports 1 if node is not in committee."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_executor_liveness_live_rounds"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of live rounds in last epoch."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_executor_liveness_total_rounds"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of total rounds in last epoch."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_failed_round_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of failed roothash rounds."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_committee_size"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of nodes in the committee"}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_confirmed_applications_total"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of confirmed applications"}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_enclave_rpc_failures_total"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of failed enclave rpc calls."}),(0,o.jsx)(r.td,{children:"runtime, churp, method"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_enclave_rpc_latency_seconds"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Latency of enclave rpc calls in seconds."}),(0,o.jsx)(r.td,{children:"runtime, churp, method"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_extra_shares_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Minimum number of extra shares."}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_handoff_interval"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Handoff interval in epochs"}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_handoff_number"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Epoch number of the last handoff"}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_next_handoff_number"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Epoch number of the next handoff"}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_submitted_applications_total"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of submitted applications"}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_churp_threshold_number"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Degree of the secret-sharing polynomial"}),(0,o.jsx)(r.td,{children:"runtime, churp"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_compute_runtime_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of compute runtimes using the key manager."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_consensus_ephemeral_secret_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Epoch number of the latest ephemeral secret."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_consensus_master_secret_generation_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Generation number of the latest master secret."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_consensus_master_secret_proposal_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Epoch number of the latest master secret proposal."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_consensus_master_secret_proposal_generation_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Generation number of the latest master secret proposal."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_consensus_master_secret_rotation_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Epoch number of the latest master secret rotation."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_ephemeral_secret_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Epoch number of the latest ephemeral secret loaded into the enclave."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_generated_ephemeral_secret_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Epoch number of the latest ephemeral secret generated by the enclave."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_generated_master_secret_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Epoch number of the latest master secret generated by the enclave."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_generated_master_secret_generation_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Generation number of the latest master secret generated by the enclave."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_master_secret_generation_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Generation number of the latest master secret as seen by the enclave."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}
1),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_master_secret_proposal_epoch_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Epoch number of the latest master secret proposal loaded into the enclave."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_master_secret_proposal_generation_number"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Generation number of the latest master secret proposal loaded into the enclave."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_enclave_rpc_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of remote Enclave RPC requests via P2P."}),(0,o.jsx)(r.td,{children:"method"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/p2p/metrics.go",children:"worker/keymanager/p2p"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_keymanager_policy_update_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of key manager policy updates."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/keymanager/metrics.go",children:"worker/keymanager"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_node_registered"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Is oasis node registered (binary)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/registration/worker.go",children:"worker/registration"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_node_registration_eligible"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Is oasis node eligible for registration (binary)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/registration/worker.go",children:"worker/registration"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_node_status_frozen"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Is oasis node frozen (binary)."}),(0,o.jsx)(r.td,{}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/registration/worker.go",children:"worker/registration"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_node_status_runtime_faults"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Number of runtime faults."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/registration/worker.go",children:"worker/registration"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_node_status_runtime_suspended"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"Runtime node suspension status (binary)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/registration/worker.go",children:"worker/registration"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_processed_block_count"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of processed roothash blocks."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/common/committee/metrics.go",children:"worker/common/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_processed_event_c
1ount"}),(0,o.jsx)(r.td,{children:"Counter"}),(0,o.jsx)(r.td,{children:"Number of processed roothash events."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/compute/executor/committee/metrics.go",children:"worker/compute/executor/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_storage_commit_latency"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Latency of storage commit calls (state + outputs) (seconds)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/compute/executor/committee/metrics.go",children:"worker/compute/executor/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_storage_full_round"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"The last round that was fully synced and finalized."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/storage/committee/metrics.go",children:"worker/storage/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_storage_pending_round"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"The last round that is in-flight for syncing."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/storage/committee/metrics.go",children:"worker/storage/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_storage_prune_latency"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Storage pruner per-round latency (seconds)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/storage/committee/metrics.go",children:"worker/storage/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_storage_round_sync_latency"}),(0,o.jsx)(r.td,{children:"Summary"}),(0,o.jsx)(r.td,{children:"Storage round sync latency (seconds)."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/storage/committee/metrics.go",children:"worker/storage/committee"})})]}),(0,o.jsxs)(r.tr,{children:[(0,o.jsx)(r.td,{children:"oasis_worker_storage_synced_round"}),(0,o.jsx)(r.td,{children:"Gauge"}),(0,o.jsx)(r.td,{children:"The last round that was synced but not yet finalized."}),(0,o.jsx)(r.td,{children:"runtime"}),(0,o.jsx)(r.td,{children:(0,o.jsx)(r.a,{href:"https://github.com/oasisprotocol/oasis-core/tree/master/go/worker/storage/committee/metrics.go",children:"worker/storage/committee"})})]})]})]}),"\n",(0,o.jsx)(r.h2,{id:"consensus-backends",children:"Consensus backends"}),"\n",(0,o.jsxs)(r.h3,{id:"metrics-reported-by-cometbft",children:["Metrics Reported by ",(0,o.jsx)(r.em,{children:"CometBFT"})]}),"\n",(0,o.jsxs)(r.p,{children:["When ",(0,o.jsx)(r.code,{children:"oasis-node"})," is configured to use ",(0,o.jsx)(r.a,{href:"/core/consensus/#cometbft",children:"CometBFT"})," for BFT consensus, all\nCometBFT metrics are also reported. Consult\n",(0,o.jsx)(r.a,{href:"https://docs.cometbft.com/v0.38/core/metrics",children:"CometBFT-core documentation"})," for a list of reported by CometBFT."]})]})}function l(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},28453:(e,r,s)=>{s.d(r,{R:()=>c,x:()=>d});var t=s(96540);const o={},i=t.createContext(o);function c(e){const r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.