fbdf31b879
* Replace client address with service address * Copy over the server parts of the statistics server * Separate API in module * Rename struct * Add insertion endpoint * Remove unused code from network requester * Box big rocket error * Remove the feature-specific code * Construct http req * Clippy + Cargo.lock update * Re-added needed sqlx feature * Wrap http req in ordered msg * Add http headers * Move common api functionality into the separate crate * Make stats server address configurable, especially for testing * Update changelog * Fix clippy * Help command update
44 lines
1.0 KiB
Rust
44 lines
1.0 KiB
Rust
// Copyright 2022 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use error::StatsError;
|
|
|
|
pub mod api;
|
|
pub mod error;
|
|
|
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
|
pub struct StatsMessage {
|
|
pub stats_data: Vec<StatsServiceData>,
|
|
pub interval_seconds: u32,
|
|
pub timestamp: String,
|
|
}
|
|
|
|
impl StatsMessage {
|
|
pub fn to_json(&self) -> Result<String, StatsError> {
|
|
Ok(serde_json::to_string(self)?)
|
|
}
|
|
|
|
pub fn from_json(s: &str) -> Result<Self, StatsError> {
|
|
Ok(serde_json::from_str(s)?)
|
|
}
|
|
}
|
|
|
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
|
pub struct StatsServiceData {
|
|
pub requested_service: String,
|
|
pub request_bytes: u32,
|
|
pub response_bytes: u32,
|
|
}
|
|
|
|
impl StatsServiceData {
|
|
pub fn new(requested_service: String, request_bytes: u32, response_bytes: u32) -> Self {
|
|
StatsServiceData {
|
|
requested_service,
|
|
request_bytes,
|
|
response_bytes,
|
|
}
|
|
}
|
|
}
|