2022-08-04 16:46:09 +02:00
|
|
|
use lazy_static::lazy_static;
|
2022-08-08 07:41:38 +02:00
|
|
|
use prometheus::{
|
|
|
|
opts, register_histogram_vec, register_int_counter_vec, register_int_gauge,
|
2022-10-20 18:00:07 +02:00
|
|
|
register_int_gauge_vec, HistogramVec, IntCounterVec, IntGauge, IntGaugeVec,
|
2022-08-08 07:41:38 +02:00
|
|
|
};
|
2022-08-04 16:46:09 +02:00
|
|
|
|
2023-05-24 10:47:05 +02:00
|
|
|
/// Create evenly distributed buckets
|
2023-05-25 11:08:16 +02:00
|
|
|
fn create_buckets() -> [f64; 29] {
|
|
|
|
(0..10)
|
|
|
|
.chain((10..100).step_by(10))
|
|
|
|
.chain((100..=1000).step_by(100))
|
|
|
|
.map(|i| i as f64 / 1000.)
|
|
|
|
.collect::<Vec<_>>()
|
|
|
|
.try_into()
|
|
|
|
.unwrap()
|
2023-05-24 10:47:05 +02:00
|
|
|
}
|
2022-08-04 16:46:09 +02:00
|
|
|
|
|
|
|
lazy_static! {
|
2023-06-28 11:21:50 +02:00
|
|
|
pub static ref MEILISEARCH_HTTP_RESPONSE_TIME_CUSTOM_BUCKETS: [f64; 29] = create_buckets();
|
2023-05-25 17:41:53 +02:00
|
|
|
pub static ref MEILISEARCH_HTTP_REQUESTS_TOTAL: IntCounterVec = register_int_counter_vec!(
|
|
|
|
opts!("meilisearch_http_requests_total", "Meilisearch HTTP requests total"),
|
2022-08-04 16:46:09 +02:00
|
|
|
&["method", "path"]
|
|
|
|
)
|
|
|
|
.expect("Can't create a metric");
|
2024-03-18 18:39:05 +01:00
|
|
|
pub static ref MEILISEARCH_DEGRADED_SEARCH_REQUESTS: IntGauge = register_int_gauge!(opts!(
|
|
|
|
"meilisearch_degraded_search_requests",
|
|
|
|
"Meilisearch number of degraded search requests"
|
|
|
|
))
|
|
|
|
.expect("Can't create a metric");
|
2022-10-20 18:00:07 +02:00
|
|
|
pub static ref MEILISEARCH_DB_SIZE_BYTES: IntGauge =
|
2023-05-25 18:30:30 +02:00
|
|
|
register_int_gauge!(opts!("meilisearch_db_size_bytes", "Meilisearch DB Size In Bytes"))
|
2022-10-20 18:00:07 +02:00
|
|
|
.expect("Can't create a metric");
|
2023-05-25 18:30:30 +02:00
|
|
|
pub static ref MEILISEARCH_USED_DB_SIZE_BYTES: IntGauge = register_int_gauge!(opts!(
|
|
|
|
"meilisearch_used_db_size_bytes",
|
|
|
|
"Meilisearch Used DB Size In Bytes"
|
|
|
|
))
|
|
|
|
.expect("Can't create a metric");
|
2022-08-23 17:17:02 +02:00
|
|
|
pub static ref MEILISEARCH_INDEX_COUNT: IntGauge =
|
|
|
|
register_int_gauge!(opts!("meilisearch_index_count", "Meilisearch Index Count"))
|
|
|
|
.expect("Can't create a metric");
|
2022-08-23 17:09:27 +02:00
|
|
|
pub static ref MEILISEARCH_INDEX_DOCS_COUNT: IntGaugeVec = register_int_gauge_vec!(
|
2022-10-20 18:00:07 +02:00
|
|
|
opts!("meilisearch_index_docs_count", "Meilisearch Index Docs Count"),
|
2022-08-04 16:46:09 +02:00
|
|
|
&["index"]
|
|
|
|
)
|
|
|
|
.expect("Can't create a metric");
|
2023-05-25 17:41:53 +02:00
|
|
|
pub static ref MEILISEARCH_HTTP_RESPONSE_TIME_SECONDS: HistogramVec = register_histogram_vec!(
|
2023-06-28 11:21:50 +02:00
|
|
|
"meilisearch_http_response_time_seconds",
|
|
|
|
"Meilisearch HTTP response times",
|
2022-08-04 16:46:09 +02:00
|
|
|
&["method", "path"],
|
2023-06-28 11:21:50 +02:00
|
|
|
MEILISEARCH_HTTP_RESPONSE_TIME_CUSTOM_BUCKETS.to_vec()
|
2022-08-04 16:46:09 +02:00
|
|
|
)
|
|
|
|
.expect("Can't create a metric");
|
2023-05-25 17:41:53 +02:00
|
|
|
pub static ref MEILISEARCH_NB_TASKS: IntGaugeVec = register_int_gauge_vec!(
|
|
|
|
opts!("meilisearch_nb_tasks", "Meilisearch Number of tasks"),
|
|
|
|
&["kind", "value"]
|
|
|
|
)
|
|
|
|
.expect("Can't create a metric");
|
2023-07-03 15:21:58 +02:00
|
|
|
pub static ref MEILISEARCH_LAST_UPDATE: IntGauge =
|
|
|
|
register_int_gauge!(opts!("meilisearch_last_update", "Meilisearch Last Update"))
|
|
|
|
.expect("Can't create a metric");
|
|
|
|
pub static ref MEILISEARCH_IS_INDEXING: IntGauge =
|
|
|
|
register_int_gauge!(opts!("meilisearch_is_indexing", "Meilisearch Is Indexing"))
|
|
|
|
.expect("Can't create a metric");
|
2022-08-08 07:41:38 +02:00
|
|
|
}
|