Browse Source

0.1.11

master 0.1.11
Ryan 1 year ago
parent
commit
097f49e156
  1. 3
      Cargo.toml
  2. 4
      RELEASE_NOTE.md
  3. 1
      src/database.rs
  4. 23
      src/metrics.rs
  5. 1
      src/string.rs

3
Cargo.toml

@ -1,6 +1,6 @@
[package]
name = "device-common"
version = "0.1.10"
version = "0.1.11"
edition = "2021"
authors = ["Ryan Bae <jh.bae@anypointmedia.com>"]
@ -28,6 +28,7 @@ dashmap = "6.0"
async-trait = "0.1"
bytes = "1.7"
serial_test = "3.1"
actix-web-prom ="0.8"
[profile.dev]
opt-level = 0

4
RELEASE_NOTE.md

@ -1,3 +1,7 @@
0.1.11
======
- metrics 통합
0.1.10
======
- config.rs 에 s3 관련 추가

1
src/database.rs

@ -2,7 +2,6 @@ use std::sync::Arc;
use deadpool_postgres::{Pool, Config, Runtime};
use tokio::sync::OnceCell;
use tokio_postgres::NoTls;
use crate::aws::s3::read_file;
use crate::config::get_config;
static CONNECTION_POOL: OnceCell<Arc<Pool>> = OnceCell::const_new();

23
src/metrics.rs

@ -1,6 +1,29 @@
use sysinfo::System;
use prometheus::{register_gauge, Gauge};
use std::sync::OnceLock;
use actix_web_prom::{PrometheusMetrics, PrometheusMetricsBuilder};
use crate::model::error::DeviceError;
pub fn register_metrics() -> Result<PrometheusMetrics, DeviceError> {
let prometheus = PrometheusMetricsBuilder::new("api")
.endpoint("/metrics")
.build()
.map_err(|e| DeviceError::GeneralError(format!("Prometheus metrics build error: {}", e)))?;
prometheus.registry.register(Box::new(get_cpu_usage().clone()))
.map_err(|e| DeviceError::GeneralError(String::from("cpu usage metric register fail")))?;
prometheus.registry.register(Box::new(get_memory_usage().clone()))
.map_err(|e| DeviceError::GeneralError(String::from("memory usage metric register fail")))?;
prometheus.registry.register(Box::new(get_memory_used().clone()))
.map_err(|e| DeviceError::GeneralError(String::from("memory used metric register fail")))?;
prometheus.registry.register(Box::new(get_memory_total().clone()))
.map_err(|e| DeviceError::GeneralError(String::from("memory total metric register fail")))?;
Ok(prometheus)
}
pub fn get_cpu_usage() -> &'static Gauge {
static GAUGE: OnceLock<Gauge> = OnceLock::new();

1
src/string.rs

@ -36,7 +36,6 @@ mod tests {
use std::env;
use super::*;
use serial_test::serial;
use crate::env::{get, set};
fn setup() {
env::remove_var("RUST_PROFILE");

Loading…
Cancel
Save