Skip to main content
Glama
metrics.rs2.5 kB
use std::time::Duration; use metrics::{ log_counter, log_counter_with_labels, log_distribution, log_gauge, register_convex_counter, register_convex_gauge, register_convex_histogram, StaticMetricLabel, Timer, }; use prometheus::VMHistogram; register_convex_counter!( COMMON_UNDEFINED_FILTER_TOTAL, "Count of undefined JsonValues filtered" ); pub fn log_undefined_filter() { log_counter(&COMMON_UNDEFINED_FILTER_TOTAL, 1); } // Note: These Codel queue gauges are incorrect if the process contains multiple // queues. register_convex_gauge!(COMMON_CODEL_QUEUE_LENGTH_TOTAL, "Length of the CoDel queue"); pub fn log_codel_queue_size(size: usize) { log_gauge(&COMMON_CODEL_QUEUE_LENGTH_TOTAL, size as f64) } register_convex_gauge!( COMMON_CODEL_QUEUE_OVERLOADED_TOTAL, "1 if the CoDel queue is overloaded, 0 otherwise" ); pub fn log_codel_queue_overloaded(overloaded: bool) { log_gauge( &COMMON_CODEL_QUEUE_OVERLOADED_TOTAL, if overloaded { 1.0 } else { 0.0 }, ) } // static $metric: LazyLock<IntCounter> = LazyLock::new(|| { // register_int_counter_with_registry!(&*$metricname, $help, // CONVEX_METRICS_REGISTRY).unwrap()}); ==>> register_convex_counter!($metric, // $help); register_convex_histogram!( COMMON_CODEL_QUEUE_TIME_SINCE_EMPTY_SECONDS, "Time since the CoDel queue was empty" ); pub fn log_codel_queue_time_since_empty(duration: Duration) { log_distribution( &COMMON_CODEL_QUEUE_TIME_SINCE_EMPTY_SECONDS, duration.as_secs_f64(), ) } register_convex_counter!( CLIENT_VERSION_UNSUPPORTED_TOTAL, "Count of requests with an unsupported client version", &["version"] ); pub fn log_client_version_unsupported(version: String) { log_counter_with_labels( &CLIENT_VERSION_UNSUPPORTED_TOTAL, 1, vec![StaticMetricLabel::new("version", version)], ); } register_convex_counter!(ERRORS_REPORTED_TOTAL, "Count of errors reported", &["type"]); pub fn log_errors_reported_total(tag: StaticMetricLabel) { log_counter_with_labels(&ERRORS_REPORTED_TOTAL, 1, vec![tag]); } register_convex_histogram!(LOAD_ID_TRACKER_SECONDS, "Time to load IdTracker in seconds"); pub fn load_id_tracker_timer() -> Timer<VMHistogram> { Timer::new(&LOAD_ID_TRACKER_SECONDS) } register_convex_histogram!(ID_TRACKER_SIZE_BYTES, "IdTracker file size"); pub fn log_id_tracker_size(size: usize) { log_distribution(&ID_TRACKER_SIZE_BYTES, size as f64); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/get-convex/convex-backend'

If you have feedback or need assistance with the MCP directory API, please join our Discord server