diff --git a/devtools/src/builder.rs b/devtools/src/builder.rs index 7d3cae41..6a377f98 100644 --- a/devtools/src/builder.rs +++ b/devtools/src/builder.rs @@ -150,7 +150,7 @@ impl Builder { // This is pretty ugly code I know, but it looks nice in the terminal soo ¯\_(ツ)_/¯ fn print_link(addr: &SocketAddr) { let url = if option_env!("__DEVTOOLS_LOCAL_DEVELOPMENT").is_some() { - "http://localhost:5173/dash/" + "http://localhost:5173/app/dash/" } else { "https://devtools.crabnebula.dev/app/dash/" }; diff --git a/devtools/src/server.rs b/devtools/src/server.rs index 46dd88c0..d8b3fa13 100644 --- a/devtools/src/server.rs +++ b/devtools/src/server.rs @@ -16,10 +16,9 @@ use devtools_wire_format::tauri::{ use futures::{FutureExt, Stream, TryStreamExt}; use std::net::SocketAddr; use std::path::{Component, PathBuf}; -use std::sync::Arc; use tauri::http::header::HeaderValue; use tauri::{AppHandle, Runtime}; -use tokio::sync::{mpsc, RwLock}; +use tokio::sync::mpsc; use tonic::codegen::http::Method; use tonic::codegen::tokio_stream::wrappers::ReceiverStream; use tonic::codegen::BoxStream; @@ -56,7 +55,6 @@ struct InstrumentService { struct TauriService { app_handle: AppHandle, - metrics: Arc>, } struct SourcesService { @@ -68,11 +66,7 @@ struct MetaService { } impl Server { - pub fn new( - cmd_tx: mpsc::Sender, - app_handle: AppHandle, - metrics: Arc>, - ) -> Self { + pub fn new(cmd_tx: mpsc::Sender, app_handle: AppHandle) -> Self { let (mut health_reporter, health_service) = tonic_health::server::health_reporter(); health_reporter @@ -91,7 +85,6 @@ impl Server { }, tauri: TauriService { app_handle: app_handle.clone(), - metrics, }, // the TauriServer doesn't need a health_reporter. It can never fail. meta: MetaService { app_handle: app_handle.clone(), @@ -203,9 +196,7 @@ impl tauri_server::Tauri for TauriService { &self, _req: Request, ) -> Result, Status> { - let metrics = self.metrics.read().await; - - Ok(Response::new(metrics.clone())) + Ok(Response::new(Metrics::default())) } } @@ -424,13 +415,11 @@ mod test { use devtools_wire_format::sources::sources_server::Sources; use devtools_wire_format::tauri::tauri_server::Tauri; use futures::StreamExt; - use std::time::SystemTime; #[tokio::test] async fn tauri_get_config() { let tauri = TauriService { app_handle: tauri::test::mock_app().handle(), - metrics: Default::default(), }; let cfg = tauri @@ -444,30 +433,6 @@ mod test { ); } - #[tokio::test] - async fn tauri_get_metrics() { - let srv = TauriService { - app_handle: tauri::test::mock_app().handle(), - metrics: Default::default(), - }; - - let metrics = srv - .get_metrics(Request::new(MetricsRequest {})) - .await - .unwrap(); - assert_eq!(metrics.into_inner(), *srv.metrics.read().await); - - let mut m = srv.metrics.write().await; - m.initialized_at = Some(SystemTime::now().into()); - drop(m); - - let metrics = srv - .get_metrics(Request::new(MetricsRequest {})) - .await - .unwrap(); - assert_eq!(metrics.into_inner(), *srv.metrics.read().await); - } - #[tokio::test] async fn subscription() { let (health_reporter, _) = tonic_health::server::health_reporter(); diff --git a/devtools/src/tauri_plugin.rs b/devtools/src/tauri_plugin.rs index 5e269b31..cd1e54b2 100644 --- a/devtools/src/tauri_plugin.rs +++ b/devtools/src/tauri_plugin.rs @@ -1,14 +1,11 @@ use crate::aggregator::Aggregator; use crate::server::Server; use crate::Command; -use devtools_wire_format::tauri::Metrics; use std::net::SocketAddr; -use std::sync::Arc; use std::thread; -use std::time::SystemTime; -use std::time::{Duration, Instant}; -use tauri::{RunEvent, Runtime}; -use tokio::sync::{mpsc, RwLock}; +use std::time::Duration; +use tauri::Runtime; +use tokio::sync::mpsc; pub(crate) fn init( addr: SocketAddr, @@ -16,16 +13,9 @@ pub(crate) fn init( aggregator: Aggregator, cmd_tx: mpsc::Sender, ) -> tauri::plugin::TauriPlugin { - let now = Instant::now(); - let metrics = Arc::new(RwLock::new(Metrics { - initialized_at: Some(aggregator.base_time.to_timestamp(now)), // TODO this is horrific - ready_at: None, - })); - - let m = metrics.clone(); tauri::plugin::Builder::new("probe") .setup(move |app_handle| { - let server = Server::new(cmd_tx, app_handle.clone(), m); + let server = Server::new(cmd_tx, app_handle.clone()); // spawn the server and aggregator in a separate thread // so we don't interfere with the application we're trying to instrument @@ -51,13 +41,5 @@ pub(crate) fn init( Ok(()) }) - .on_event(move |_, event| { - if let RunEvent::Ready = event { - let mut metrics = metrics.blocking_write(); - metrics.ready_at = Some(SystemTime::now().into()); - - tracing::debug!("Application is ready"); - } - }) .build() } diff --git a/web-client/src/components/boot-time.tsx b/web-client/src/components/boot-time.tsx deleted file mode 100644 index 12af1dfd..00000000 --- a/web-client/src/components/boot-time.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { Show } from "solid-js"; -import { Loader } from "./loader"; -import { useMonitor } from "~/context/monitor-provider"; - -export function BootTime() { - const { monitorData } = useMonitor(); - return ( - }> - {(e) => ( -
- Loading time: - - {(Number(e().seconds) * 1000 + e().nanos / 1e6).toFixed(2)}ms - -
- )} -
- ); -} diff --git a/web-client/src/views/dashboard/layout.tsx b/web-client/src/views/dashboard/layout.tsx index 23a1d399..9045106a 100644 --- a/web-client/src/views/dashboard/layout.tsx +++ b/web-client/src/views/dashboard/layout.tsx @@ -1,6 +1,5 @@ import { Outlet, useParams } from "@solidjs/router"; import { Navigation } from "~/components/navigation"; -import { BootTime } from "~/components/boot-time"; import { HealthStatus } from "~/components/health-status.tsx"; import { Logo } from "~/components/crabnebula-logo"; import { DisconnectButton } from "~/components/disconnect-button"; @@ -18,7 +17,6 @@ export default function Layout() {
-
diff --git a/wire/proto/tauri.proto b/wire/proto/tauri.proto index f0033c05..ea5da30a 100644 --- a/wire/proto/tauri.proto +++ b/wire/proto/tauri.proto @@ -9,7 +9,9 @@ service Tauri { rpc GetConfig(ConfigRequest) returns (Config) {} - rpc GetMetrics(MetricsRequest) returns (Metrics) {} + rpc GetMetrics(MetricsRequest) returns (Metrics) { + option deprecated = true; + } } message VersionsRequest {}