Exporter for transforming Curio cluster data into Prometheus metrics format, enabling real-time monitoring and visualization of key Curio metrics in dashboarding tools like Grafana. This tool helps bridge the gap between Curio's internal data structures and modern observability platforms.
All collectors can be found in the collectors directory.
git clone https://github.com/strahe/curio-exporter.git
cd curio-exporter
cp sql_exporter.yml.example sql_exporter.yml
# Edit sql_exporter.yml and update {data_source_name} with your database connection string
vim sql_exporter.yml
docker compose up -d
# Access http://localhost:9399/metrics for metrics
# Access http://localhost:9090 for prometheus
curio_alerts_count
(gauge) - Total number of alerts
curio_machines_count
(gauge) - Total number of machines (by status: online/offline/unschedulable)curio_machines_total_cpu
(gauge) - Total CPU resources (by status)curio_machines_total_gpu
(gauge) - Total GPU resources (by status)curio_machines_total_ram
(gauge) - Total RAM resources (by status)
curio_harmony_running_tasks_count
(gauge) - Total number of running tasks (by task_name)curio_harmony_task_error_rate
(gauge) - Error rate of harmony tasks (failures / total executions)curio_harmony_task_latency_seconds
(gauge) - Average delay time from task posting to execution
curio_ipni_task_count
(gauge) - Count of IPNI tasks by completion status and operation typecurio_ipni_task_age_max
(gauge) - Maximum age of incomplete IPNI tasks in seconds
curio_market_mk12_deal_pipeline_count
(gauge) - Count of market MK12 deal pipeline stagescurio_market_mk12_deals_count
(gauge) - Count of market MK12 deals by different dimensions
curio_market_piece_metadata_count
(gauge) - Count of market piece metadata by indexing status and versioncurio_market_piece_metadata_size_total
(gauge) - Total size of market pieces by indexing statuscurio_piece_summary_stats
(gauge) - Summary statistics of pieces (total, announced, indexed)
curio_message_sends_count
(gauge) - Count of message sends by success statuscurio_message_waits_count
(gauge) - Count of message waits by waiter machine
curio_message_sends_eth_count
(gauge) - Count of Ethereum message sends by success statuscurio_message_sends_eth_error_rate
(gauge) - Error rate of Ethereum message sends by from addresscurio_message_sends_eth_by_reason
(gauge) - Count of Ethereum message sends by send reasoncurio_message_sends_eth_nonce_max
(gauge) - Maximum nonce used by from addresscurio_message_sends_eth_recent_failures
(gauge) - Count of recent Ethereum message send failures by error typecurio_message_waits_eth_count
(gauge) - Count of Ethereum message waits by transaction status and successcurio_message_waits_eth_success_rate
(gauge) - Success rate of Ethereum message waits by waiter machinecurio_message_waits_eth_block_number_latest
(gauge) - Latest confirmed block number by waiter machinecurio_message_waits_eth_by_status
(gauge) - Count of Ethereum message waits by transaction statuscurio_message_waits_eth_machine_distribution
(gauge) - Distribution of Ethereum message waits across machinescurio_message_waits_eth_hash_matches
(gauge) - Count of Ethereum message waits with matching/non-matching transaction hashescurio_message_send_eth_locks_count
(gauge) - Count of Ethereum message send locks by from addresscurio_message_send_eth_locks_active
(gauge) - Count of active Ethereum message send locks (currently claimed)curio_message_send_eth_locks_age_max
(gauge) - Maximum age of Ethereum message send locks in secondscurio_message_send_eth_locks_by_task
(gauge) - Count of Ethereum message send locks by task ID statuscurio_message_send_eth_locks_stale
(gauge) - Count of potentially stale Ethereum message send locks (older than 1 hour)
curio_mining_tasks_count
(gauge) - Count of mining tasks by inclusion status, winning status, and miner IDcurio_mining_tasks_success_rate
(gauge) - Success rate of mining tasks (included tasks / total tasks)curio_mining_tasks_win_rate
(gauge) - Win rate of mining tasks (won tasks / included tasks)
curio_sector_location_count
(gauge) - Count of sector locations by miner ID and primary statuscurio_sectors_sdr_pipeline_count
(gauge) - Count of sectors in SDR pipeline by statuscurio_sectors_snap_pipeline_count
(gauge) - Count of sectors in SNAP pipeline by statuscurio_sectors_unseal_pipeline_count
(gauge) - Count of sectors in Unseal pipeline by status
curio_storage_path_capacity
(gauge) - Total capacity of storage pathscurio_storage_path_available
(gauge) - Available space in storage pathscurio_storage_path_fs_available
(gauge) - Available space in file system for storage pathscurio_storage_path_used
(gauge) - Used space in storage pathscurio_storage_path_reserved
(gauge) - Reserved space in storage pathscurio_storage_path_max_storage
(gauge) - Maximum storage capacity of storage pathscurio_storage_removal_marks_count
(gauge) - Count of storage removal marks by miner ID and approval status
curio_wdpost_proofs_count
(gauge) - Count of WindowPoSt proofs by miner ID, deadline, and partitioncurio_wdpost_proofs_by_epoch
(gauge) - Count of WindowPoSt proofs for current and future epochscurio_wdpost_recovery_tasks_count
(gauge) - Count of WindowPoSt recovery tasks