Skip to Content
IntegrationsMonitoring Integration

Monitoring Integration

Tidecoin Core exposes operational state through JSON-RPC, logs, optional REST, and optional ZMQ. It does not expose Prometheus metrics natively. Monitoring systems should collect a small set of RPC probes, ship debug.log, and alert on node health, sync progress, peer connectivity, disk pressure, and chain splits.

This page is for integrating external monitoring systems. It is not the operator runbook for what each alert means; that belongs in Node & Operations / Monitoring.

Collection architecture

Use one of these patterns:

PatternUse whenNotes
RPC exporterYou already run Prometheus or Grafana Agent.Poll selected JSON-RPC commands and convert fields to metrics.
Textfile collectorYou run node exporter.A cron or systemd timer writes selected metrics to a .prom file.
Log pipelineYou use Loki, Elasticsearch, or another aggregator.Ship debug.log and parse warnings, validation errors, and reorg messages.
ZMQ subscriberYou need low-latency block or transaction events.Use ZMQ for event notification, then confirm state through RPC.

Keep monitoring RPC credentials read-only. The monitoring user should be allowed to call health and introspection commands only.

RPC probes

Minimum probes:

RPCFields to collectAlert use
getblockchaininfochain, blocks, headers, bestblockhash, initialblockdownload, verificationprogress, pruned, size_on_disk, warningsSync state, chain identity, IBD, disk growth, warnings.
getnetworkinfoconnections, connections_in, connections_out, networkactive, warningsPeer health and network isolation.
getmempoolinfosize, bytes, usage, mempoolminfee, minrelaytxfeeMempool pressure and fee floor changes.
getchaintipsActive and stale tipsFork and reorg observation.
getmininginfodifficulty, networkhashps, chain mining fieldsMining and difficulty visibility where available.
getrpcinfoActive commandsStuck or abusive RPC clients.
uptimeProcess uptime secondsRestart detection.

For integrations that depend on indexes, also collect getindexinfo if the configured node exposes it.

Example metric names

Exporter names do not need to match these exactly, but stable names make dashboards and alerts maintainable:

MetricTypeSource
tidecoin_block_heightGaugegetblockchaininfo.blocks.
tidecoin_header_heightGaugegetblockchaininfo.headers.
tidecoin_initial_block_downloadGaugegetblockchaininfo.initialblockdownload.
tidecoin_verification_progressGaugegetblockchaininfo.verificationprogress.
tidecoin_peer_countGaugegetnetworkinfo.connections.
tidecoin_network_activeGaugegetnetworkinfo.networkactive.
tidecoin_mempool_transactionsGaugegetmempoolinfo.size.
tidecoin_mempool_bytesGaugegetmempoolinfo.bytes.
tidecoin_disk_size_bytesGaugegetblockchaininfo.size_on_disk.
tidecoin_process_uptime_secondsGaugeuptime.

Expose the chain name as a label only when the label cardinality is controlled, for example chain="main", chain="test", or chain="regtest".

Prometheus scrape shape

If you deploy an RPC exporter on the node host, a minimal scrape target looks like:

scrape_configs: - job_name: tidecoin static_configs: - targets: - 127.0.0.1:9332

The port above is the exporter port, not the Tidecoin RPC port. Do not expose Tidecoin JSON-RPC directly as a Prometheus target.

Alert rules

Start with these alerts and tune thresholds for the environment:

AlertCondition
Node downExporter cannot reach the node or uptime stops responding.
In IBDinitialblockdownload remains true after the expected sync window.
Header lagheaders - blocks stays above the threshold.
Low peersPeer count stays below the service threshold.
Network inactivenetworkactive is false.
Chain mismatchchain is not the expected network.
Node splitTwo exchange-controlled nodes report different best block hashes for longer than the tolerance window.
Disk pressureFree disk space or projected chain data growth crosses the threshold.
Warnings presentwarnings is non-empty.
Deep reorgReorg depth exceeds the integration’s configured tolerance.

For exchanges and custodians, alert on fleet disagreement, not only single-node health. A single healthy but isolated node is not enough to safely credit deposits.

Log integration

Ship the node’s debug.log to the same retention system used for other infrastructure logs. Useful filters include:

PatternMeaning
UpdateTipNormal tip advancement.
REORGANIZE or reorg-related messagesChain reorganization.
ERROR, Error, failedOperational or validation failure.
Misbehaving / peer disconnect messagesPeer health.
AuxPoW reject reasonsMerged-mining integration failures after activation.

Avoid alerting on every log line containing error until the filters are tested against production-like logs; debug logs can include benign context.

ZMQ event feeds

Use ZMQ for low-latency notifications, then confirm details through RPC. ZMQ is useful for:

Topic classUse
New block notificationsTrigger block ingestion immediately.
Mempool transaction notificationsUpdate unconfirmed transaction UX.
Sequence notificationsTrack mempool add/remove events where supported.

ZMQ is not a replacement for a reorg-aware block index. Missed notifications, subscriber restarts, and network interruptions must be recovered by comparing stored tip state against getblockchaininfo.

Security

Monitoring credentials should not be able to spend, import keys, submit blocks, or change node state. Use RPC whitelisting for monitoring service accounts and bind RPC to localhost or a private network. See RPC Security for configuration examples.

Source of truth

TopicCanonical page
Operator monitoring runbookNode & Operations / Monitoring
RPC securityRPC Security
REST and ZMQ enablementNode & Operations / REST and ZMQ
RPC polling patternsRPC Integration Patterns
RPC command schemasRPC Reference

See also: Exchange Integration, Explorer Integration.

Last updated on