diff --git a/Cargo.lock b/Cargo.lock index 18854aeb26..0127dc42cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10755,6 +10755,27 @@ dependencies = [ "uuid", ] +[[package]] +name = "pegboard-usage-metrics-publish" +version = "25.4.2" +dependencies = [ + "build", + "chirp-client", + "chirp-workflow", + "fdb-util", + "foundationdb", + "pegboard", + "rivet-config", + "rivet-connection", + "rivet-health-checks", + "rivet-metrics", + "rivet-runtime", + "sqlx", + "tokio", + "tracing", + "tracing-subscriber", +] + [[package]] name = "pegboard-ws" version = "25.4.2" @@ -12299,6 +12320,7 @@ dependencies = [ "chirp-workflow", "clap", "edge-monolith-workflow-worker", + "pegboard-usage-metrics-publish", "pegboard-ws", "rivet-cache", "rivet-config", diff --git a/packages/edge/infra/guard/server/src/routing/api.rs b/packages/edge/infra/guard/server/src/routing/api.rs index 9fb3db9f24..0909a523e3 100644 --- a/packages/edge/infra/guard/server/src/routing/api.rs +++ b/packages/edge/infra/guard/server/src/routing/api.rs @@ -1,7 +1,9 @@ use chirp_workflow::prelude::*; use cluster::types::{Filter, PoolType}; use global_error::GlobalResult; -use rivet_guard_core::proxy_service::{RouteConfig, RouteTarget, RoutingOutput, RoutingTimeout}; +use rivet_guard_core::proxy_service::{RouteConfig, RouteTarget, RoutingOutput, RoutingTimeout, StructuredResponse}; +use rivet_guard_core::status::StatusCode; +use std::borrow::Cow; use uuid::Uuid; /// Route requests to the API service @@ -26,6 +28,15 @@ pub async fn route_api_request( } } + // Handle ping endpoint + if path == "/ping" { + return Ok(Some(RoutingOutput::Response(StructuredResponse { + status: StatusCode::OK, + message: Cow::Borrowed("ok"), + docs: None, + }))); + } + // Get API server from the cluster let servers_res = ctx .op(cluster::ops::server::list::Input {