aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock1
-rw-r--r--src/rpc/system_metrics.rs8
-rw-r--r--src/util/Cargo.toml3
-rw-r--r--src/util/build.rs8
-rw-r--r--src/util/version.rs4
5 files changed, 20 insertions, 4 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 4fddd215..981af01d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1309,6 +1309,7 @@ dependencies = [
"opentelemetry",
"rand",
"rmp-serde",
+ "rustc_version",
"serde",
"serde_json",
"sha2 0.10.6",
diff --git a/src/rpc/system_metrics.rs b/src/rpc/system_metrics.rs
index 83f5fa97..af81b71f 100644
--- a/src/rpc/system_metrics.rs
+++ b/src/rpc/system_metrics.rs
@@ -31,10 +31,10 @@ impl SystemMetrics {
.u64_value_observer("garage_build_info", move |observer| {
observer.observe(
1,
- &[KeyValue::new(
- "version",
- garage_util::version::garage_version(),
- )],
+ &[
+ KeyValue::new("rustversion", garage_util::version::rust_version()),
+ KeyValue::new("version", garage_util::version::garage_version()),
+ ],
)
})
.with_description("Garage build info")
diff --git a/src/util/Cargo.toml b/src/util/Cargo.toml
index abeccbbd..9c182fd6 100644
--- a/src/util/Cargo.toml
+++ b/src/util/Cargo.toml
@@ -47,6 +47,9 @@ hyper = "0.14"
opentelemetry = { version = "0.17", features = [ "rt-tokio", "metrics", "trace" ] }
+[build-dependencies]
+rustc_version = "0.4.0"
+
[dev-dependencies]
mktemp = "0.5"
diff --git a/src/util/build.rs b/src/util/build.rs
new file mode 100644
index 00000000..a4e955b8
--- /dev/null
+++ b/src/util/build.rs
@@ -0,0 +1,8 @@
+use rustc_version::version;
+
+fn main() {
+ // Acquire the version of Rust used to compile, this is added as a label to
+ // the garage_build_info metric.
+ let v = version().unwrap();
+ println!("cargo:rustc-env=RUSTC_VERSION={v}");
+}
diff --git a/src/util/version.rs b/src/util/version.rs
index b515dccc..2b2ea271 100644
--- a/src/util/version.rs
+++ b/src/util/version.rs
@@ -26,3 +26,7 @@ pub fn init_version(version: &'static str) {
pub fn init_features(features: &'static [&'static str]) {
FEATURES.store(Some(Arc::new(features)));
}
+
+pub fn rust_version() -> &'static str {
+ env!("RUSTC_VERSION")
+}