Files
nym/nym-node/src/node/http/router/api/v1/metrics/wireguard.rs
T
dynco-nym 41fb17a31b Extend swagger docs (#5235)
* WIP adding derive(ToSchema)

* Derive ToSchema for more types

* ContractBuildInformation on /nym_contracts_detailed

* rustfmt

* Add cfg_attr

* A bunch of annotations

* Compiles with utoipa 5.2

* WIP

* Post rebase fixes

* Gitattributes to ignore .sqlx diffs

* generate Sqlx schema files

* Improvements

* Move ecash schema out of ecash crate

* Move redocly config to nym-api/

* Move redocly config to nym-api/

* Remove ErrorResponse

* Move generated openapi spec to .gitignore

* Include BSL licence

* Remove utoipa from ecash toml file

* Remove placeholder annotations

* Chain-watcher rebase changes

* Update licence info

* Treat Scalar as String in OpenAPI
2024-12-20 12:18:45 +01:00

41 lines
1.3 KiB
Rust

// Copyright 2024 - Nym Technologies SA <contact@nymtech.net>
// SPDX-License-Identifier: GPL-3.0-only
use crate::node::http::state::metrics::MetricsAppState;
use axum::extract::{Query, State};
use nym_http_api_common::{FormattedResponse, OutputParams};
use nym_node_metrics::NymNodeMetrics;
use nym_node_requests::api::v1::metrics::models::WireguardStats;
/// If applicable, returns wireguard statistics information of this node.
/// This information is **PURELY** self-reported and in no way validated.
#[utoipa::path(
get,
path = "/wireguard-stats",
context_path = "/api/v1/metrics",
tag = "Metrics",
responses(
(status = 200, content(
(WireguardStats = "application/json"),
(WireguardStats = "application/yaml")
))
),
params(OutputParams),
)]
pub(crate) async fn wireguard_stats(
Query(output): Query<OutputParams>,
State(metrics_state): State<MetricsAppState>,
) -> WireguardStatsResponse {
let output = output.output.unwrap_or_default();
output.to_response(build_response(&metrics_state.metrics))
}
fn build_response(metrics: &NymNodeMetrics) -> WireguardStats {
WireguardStats {
bytes_tx: metrics.wireguard.bytes_tx(),
bytes_rx: metrics.wireguard.bytes_rx(),
}
}
pub type WireguardStatsResponse = FormattedResponse<WireguardStats>;