diff --git a/app/Actions/Influxdb/v2/BuildPointData.php b/app/Actions/Influxdb/v2/BuildPointData.php index f01991fe4..40a13e81d 100644 --- a/app/Actions/Influxdb/v2/BuildPointData.php +++ b/app/Actions/Influxdb/v2/BuildPointData.php @@ -39,6 +39,8 @@ public function handle(Result $result): Point ->addField('ping', Number::castToType($result->ping, 'float')) ->addField('download_bits', ! blank($result->download) ? Number::castToType(Bitrate::bytesToBits($result->download), 'int') : null) ->addField('upload_bits', ! blank($result->upload) ? Number::castToType(Bitrate::bytesToBits($result->upload), 'int') : null) + ->addField('download_elapsed', Number::castToType(Arr::get($result->data, 'download.elapsed'), 'float')) + ->addField('upload_elapsed', Number::castToType(Arr::get($result->data, 'upload.elapsed'), 'float')) ->addField('download_jitter', Number::castToType(Arr::get($result->data, 'download.latency.jitter'), 'float')) ->addField('upload_jitter', Number::castToType(Arr::get($result->data, 'upload.latency.jitter'), 'float')) ->addField('ping_jitter', Number::castToType(Arr::get($result->data, 'ping.jitter'), 'float')) @@ -48,6 +50,8 @@ public function handle(Result $result): Point ->addField('upload_latency_avg', Number::castToType(Arr::get($result->data, 'upload.latency.iqm'), 'float')) ->addField('upload_latency_high', Number::castToType(Arr::get($result->data, 'upload.latency.high'), 'float')) ->addField('upload_latency_low', Number::castToType(Arr::get($result->data, 'upload.latency.low'), 'float')) + ->addField('downloaded_bytes', Number::castToType($result->data, 'downloaded_bytes', 'int')) + ->addField('uploaded_bytes', Number::castToType($result->data, 'uploaded_bytes', 'int')) ->addField('packet_loss', Number::castToType(Arr::get($result->data, 'packetLoss'), 'float')) ->addField('log_message', Arr::get($result->data, 'message')); diff --git a/app/Models/Traits/ResultDataAttributes.php b/app/Models/Traits/ResultDataAttributes.php index 805ca9d29..0e38bc2af 100644 --- a/app/Models/Traits/ResultDataAttributes.php +++ b/app/Models/Traits/ResultDataAttributes.php @@ -248,6 +248,26 @@ protected function uploadElapsed(): Attribute ); } + /** + * Get the result's uploaded bytes. + */ + public function uploadedBytes(): Attribute + { + return Attribute::make( + get: fn () => Arr::get($this->data, 'upload.bytes'), + ); + } + + /** + * Get the result's downloaded bytes. + */ + public function downloadedBytes(): Attribute + { + return Attribute::make( + get: fn () => Arr::get($this->data, 'download.bytes'), + ); + } + /** * Get the result's server port. */