Skip to content

Commit 281301c

Browse files
committed
more and with reset
1 parent b4beea5 commit 281301c

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

include/aws/s3/private/s3_request.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ struct aws_s3_request_metrics {
7474
int64_t body_read_start_timestamp_ns;
7575
int64_t body_read_end_timestamp_ns;
7676
int64_t body_read_duration_ns;
77+
int64_t body_read_total_without_reset_ns;
7778
int64_t body_read_total_ns;
7879
} time_metrics;
7980

include/aws/s3/s3_client.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1474,7 +1474,9 @@ int aws_s3_request_metrics_get_body_read_duration_ns(
14741474
int aws_s3_request_metrics_get_body_read_total_ns(
14751475
const struct aws_s3_request_metrics *metrics,
14761476
int64_t *body_read_total_ns);
1477-
1477+
int aws_s3_request_metrics_get_body_read_total_without_reset_ns(
1478+
const struct aws_s3_request_metrics *metrics,
1479+
int64_t *body_read_total_without_reset_ns);
14781480
/* Get the AWS CRT error code from request metrics. */
14791481
AWS_S3_API
14801482
int aws_s3_request_metrics_get_error_code(const struct aws_s3_request_metrics *metrics);

source/s3_parallel_input_stream.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,11 @@ static int s_aws_s3_mmap_part_streaming_input_stream_read(struct aws_input_strea
345345
} else {
346346
impl->request->send_data.metrics->time_metrics.body_read_total_ns += duration;
347347
}
348+
if (impl->request->send_data.metrics->time_metrics.body_read_total_without_reset_ns == -1) {
349+
impl->request->send_data.metrics->time_metrics.body_read_total_without_reset_ns = duration;
350+
} else {
351+
impl->request->send_data.metrics->time_metrics.body_read_total_without_reset_ns += duration;
352+
}
348353
aws_s3_meta_request_unlock_synced_data(impl->meta_request);
349354
/* END CRITICAL SECTION */
350355
if (impl->in_chunk_offset == impl->reading_chunk_buf->len) {
@@ -457,6 +462,9 @@ struct aws_input_stream *aws_input_stream_new_from_parallel_stream(
457462
impl->reading_chunk_buf = &impl->chunk_buf_2;
458463
impl->meta_request = meta_request;
459464
impl->request = request;
465+
if (impl->request->send_data.metrics && impl->request->send_data.metrics->time_metrics.body_read_total_ns != -1) {
466+
impl->request->send_data.metrics->time_metrics.body_read_total_ns = -1;
467+
}
460468

461469
/* Reset the input stream to start */
462470
aws_streaming_input_stream_reset(&impl->base);

source/s3_request.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,19 +435,30 @@ int aws_s3_request_metrics_get_body_read_start_timestamp_ns(
435435
const struct aws_s3_request_metrics *metrics,
436436
int64_t *body_read_start_timestamp_ns) {
437437
*body_read_start_timestamp_ns = metrics->time_metrics.body_read_start_timestamp_ns;
438+
return AWS_OP_SUCCESS;
438439
}
439440
int aws_s3_request_metrics_get_body_read_end_timestamp_ns(
440441
const struct aws_s3_request_metrics *metrics,
441442
int64_t *body_read_end_timestamp_ns) {
442443
*body_read_end_timestamp_ns = metrics->time_metrics.body_read_end_timestamp_ns;
444+
return AWS_OP_SUCCESS;
443445
}
444446
int aws_s3_request_metrics_get_body_read_duration_ns(
445447
const struct aws_s3_request_metrics *metrics,
446448
int64_t *body_read_duration_ns) {
447449
*body_read_duration_ns = metrics->time_metrics.body_read_duration_ns;
450+
return AWS_OP_SUCCESS;
448451
}
449452
int aws_s3_request_metrics_get_body_read_total_ns(
450453
const struct aws_s3_request_metrics *metrics,
451454
int64_t *body_read_total_ns) {
452455
*body_read_total_ns = metrics->time_metrics.body_read_total_ns;
456+
return AWS_OP_SUCCESS;
457+
}
458+
459+
int aws_s3_request_metrics_get_body_read_total_without_reset_ns(
460+
const struct aws_s3_request_metrics *metrics,
461+
int64_t *body_read_total_without_reset_ns) {
462+
*body_read_total_without_reset_ns = metrics->time_metrics.body_read_total_without_reset_ns;
463+
return AWS_OP_SUCCESS;
453464
}

0 commit comments

Comments
 (0)