chore: add a uniform prefix to the metrics using the official recommendation of (#1590)

This commit is contained in:
localhost
2023-05-17 11:08:49 +08:00
committed by GitHub
parent e70d49b9cf
commit a6ec79ee30
3 changed files with 25 additions and 8 deletions

21
Cargo.lock generated
View File

@@ -53,6 +53,15 @@ dependencies = [
"version_check",
]
[[package]]
name = "aho-corasick"
version = "0.7.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
dependencies = [
"memchr",
]
[[package]]
name = "aho-corasick"
version = "1.0.1"
@@ -1837,6 +1846,7 @@ dependencies = [
"console-subscriber",
"metrics",
"metrics-exporter-prometheus",
"metrics-util",
"once_cell",
"opentelemetry",
"opentelemetry-jaeger",
@@ -4909,8 +4919,9 @@ dependencies = [
[[package]]
name = "metrics-exporter-prometheus"
version = "0.11.1"
source = "git+https://github.com/GreptimeTeam/metrics.git?rev=174de287e9f7f9f57c0272be56c95df156489476#174de287e9f7f9f57c0272be56c95df156489476"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8603921e1f54ef386189335f288441af761e0fc61bcb552168d9cedfe63ebc70"
dependencies = [
"indexmap",
"metrics",
@@ -4938,14 +4949,18 @@ version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7d24dc2dbae22bff6f1f9326ffce828c9f07ef9cc1e8002e5279f845432a30a"
dependencies = [
"aho-corasick 0.7.20",
"crossbeam-epoch",
"crossbeam-utils",
"hashbrown 0.12.3",
"indexmap",
"metrics",
"num_cpus",
"ordered-float 2.10.0",
"parking_lot",
"portable-atomic",
"quanta",
"radix_trie",
"sketches-ddsketch",
]
@@ -6751,7 +6766,7 @@ version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
dependencies = [
"aho-corasick",
"aho-corasick 1.0.1",
"memchr",
"regex-syntax 0.7.1",
]

View File

@@ -12,7 +12,8 @@ deadlock_detection = ["parking_lot"]
backtrace = "0.3"
common-error = { path = "../error" }
console-subscriber = { version = "0.1", optional = true }
metrics-exporter-prometheus = { git = "https://github.com/GreptimeTeam/metrics.git", rev = "174de287e9f7f9f57c0272be56c95df156489476", default-features = false }
metrics-exporter-prometheus = { version = "0.11", default-features = false }
metrics-util = "0.14.0"
metrics.workspace = true
once_cell = "1.10"
opentelemetry = { version = "0.17", default-features = false, features = [

View File

@@ -20,6 +20,7 @@ use std::time::{Duration, Instant};
use metrics::histogram;
use metrics_exporter_prometheus::PrometheusBuilder;
pub use metrics_exporter_prometheus::PrometheusHandle;
use metrics_util::layers::{Layer, PrefixLayer};
use once_cell::sync::Lazy;
static PROMETHEUS_HANDLE: Lazy<Arc<RwLock<Option<PrometheusHandle>>>> =
@@ -32,9 +33,7 @@ pub fn init_default_metrics_recorder() {
/// Init prometheus recorder.
fn init_prometheus_recorder() {
let recorder = PrometheusBuilder::new()
.add_global_prefix("greptime".to_string())
.build_recorder();
let recorder = PrometheusBuilder::new().build_recorder();
let mut h = PROMETHEUS_HANDLE.as_ref().write().unwrap();
*h = Some(recorder.handle());
// TODO(LFC): separate metrics for testing and metrics for production
@@ -47,7 +46,9 @@ fn init_prometheus_recorder() {
unsafe {
metrics::clear_recorder();
}
match metrics::set_boxed_recorder(Box::new(recorder)) {
let layer = PrefixLayer::new("greptime");
let layered = layer.layer(recorder);
match metrics::set_boxed_recorder(Box::new(layered)) {
Ok(_) => (),
Err(err) => crate::warn!("Install prometheus recorder failed, cause: {}", err),
};