Feature Description
Hi team, I notice for simple 1-1 mapping read + write operations (i.e., read an object from bucket A and write it to bucket B), read and write request rate shows completely different results (read RPS is several times larger than write RPS), both are backed by metrics opendal_operation_duration_seconds_count.
If I don't read it wrong:
- For read operations, the metrics is actually counting for HTTP requests for chunk reader
- On read operations, we create multiple readers, with each of them containing the full layers:
|
if let Some(r) = self.generator.next_reader().await? { |
- For write operations, things are different, all writes through the same writer created here
|
let (_, w) = ctx.acc.write(ctx.path(), ctx.args().clone()).await?; |
- In one word, for read operations, the operation count metrics is measuring the HTTP request count, while for write operations, it's measuring the write operation/function call count.
It's not ideal from my perspective:
- Read and write operation counts are completely different if I call
Operation::read and Operation::write the same time, which causes user confusion
- Read operation count overlaps with HTTP request count
Problem and Solution
I made my workaround to collect and emit these metrics at application level.
But would be good to calculate these two metrics in the same way for both operations.
Additional Context
No response
Are you willing to contribute to the development of this feature?
Feature Description
Hi team, I notice for simple 1-1 mapping read + write operations (i.e., read an object from bucket A and write it to bucket B), read and write request rate shows completely different results (read RPS is several times larger than write RPS), both are backed by metrics
opendal_operation_duration_seconds_count.If I don't read it wrong:
opendal/core/core/src/types/read/buffer_stream.rs
Line 115 in 69114d2
opendal/core/core/src/types/context/write.rs
Line 113 in 69114d2
It's not ideal from my perspective:
Operation::readandOperation::writethe same time, which causes user confusionProblem and Solution
I made my workaround to collect and emit these metrics at application level.
But would be good to calculate these two metrics in the same way for both operations.
Additional Context
No response
Are you willing to contribute to the development of this feature?