mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 09:38:33 +08:00
fix(analytics): using HashSet to represent the returned metrics (#5179)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -14,13 +14,15 @@ use crate::{
|
||||
mod api_count;
|
||||
pub mod latency;
|
||||
mod status_code_count;
|
||||
use std::collections::HashSet;
|
||||
|
||||
use api_count::ApiCount;
|
||||
use latency::MaxLatency;
|
||||
use status_code_count::StatusCodeCount;
|
||||
|
||||
use self::latency::LatencyAvg;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, serde::Deserialize)]
|
||||
#[derive(Debug, PartialEq, Eq, serde::Deserialize, Hash)]
|
||||
pub struct ApiEventMetricRow {
|
||||
pub latency: Option<u64>,
|
||||
pub api_count: Option<u64>,
|
||||
@ -46,7 +48,7 @@ where
|
||||
granularity: &Option<Granularity>,
|
||||
time_range: &TimeRange,
|
||||
pool: &T,
|
||||
) -> MetricsResult<Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>>;
|
||||
) -> MetricsResult<HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>>;
|
||||
}
|
||||
|
||||
#[async_trait::async_trait]
|
||||
@ -67,7 +69,7 @@ where
|
||||
granularity: &Option<Granularity>,
|
||||
time_range: &TimeRange,
|
||||
pool: &T,
|
||||
) -> MetricsResult<Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
) -> MetricsResult<HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
match self {
|
||||
Self::Latency => {
|
||||
MaxLatency
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
use std::collections::HashSet;
|
||||
|
||||
use api_models::analytics::{
|
||||
api_event::{ApiEventDimensions, ApiEventFilters, ApiEventMetricsBucketIdentifier},
|
||||
Granularity, TimeRange,
|
||||
@ -33,7 +35,7 @@ where
|
||||
granularity: &Option<Granularity>,
|
||||
time_range: &TimeRange,
|
||||
pool: &T,
|
||||
) -> MetricsResult<Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
) -> MetricsResult<HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::ApiEvents);
|
||||
|
||||
query_builder
|
||||
@ -98,7 +100,7 @@ where
|
||||
))
|
||||
})
|
||||
.collect::<error_stack::Result<
|
||||
Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>,
|
||||
HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>,
|
||||
crate::query::PostProcessingError,
|
||||
>>()
|
||||
.change_context(MetricsError::PostProcessingFailure)
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
use std::collections::HashSet;
|
||||
|
||||
use api_models::analytics::{
|
||||
api_event::{ApiEventDimensions, ApiEventFilters, ApiEventMetricsBucketIdentifier},
|
||||
Granularity, TimeRange,
|
||||
@ -36,7 +38,7 @@ where
|
||||
granularity: &Option<Granularity>,
|
||||
time_range: &TimeRange,
|
||||
pool: &T,
|
||||
) -> MetricsResult<Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
) -> MetricsResult<HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::ApiEvents);
|
||||
|
||||
query_builder
|
||||
@ -120,7 +122,7 @@ where
|
||||
))
|
||||
})
|
||||
.collect::<error_stack::Result<
|
||||
Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>,
|
||||
HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>,
|
||||
crate::query::PostProcessingError,
|
||||
>>()
|
||||
.change_context(MetricsError::PostProcessingFailure)
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
use std::collections::HashSet;
|
||||
|
||||
use api_models::analytics::{
|
||||
api_event::{ApiEventDimensions, ApiEventFilters, ApiEventMetricsBucketIdentifier},
|
||||
Granularity, TimeRange,
|
||||
@ -33,7 +35,7 @@ where
|
||||
granularity: &Option<Granularity>,
|
||||
time_range: &TimeRange,
|
||||
pool: &T,
|
||||
) -> MetricsResult<Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
) -> MetricsResult<HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>> {
|
||||
let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::ApiEvents);
|
||||
|
||||
query_builder
|
||||
@ -95,7 +97,7 @@ where
|
||||
))
|
||||
})
|
||||
.collect::<error_stack::Result<
|
||||
Vec<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>,
|
||||
HashSet<(ApiEventMetricsBucketIdentifier, ApiEventMetricRow)>,
|
||||
crate::query::PostProcessingError,
|
||||
>>()
|
||||
.change_context(MetricsError::PostProcessingFailure)
|
||||
|
||||
Reference in New Issue
Block a user