Skip to content

Conversation

tsdk02
Copy link
Contributor

@tsdk02 tsdk02 commented Sep 12, 2024

Type of Change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring
  • Dependency updates
  • Documentation
  • CI/CD

Description

Adding metrics, filters and APIs for Analytics v2 Dashboard - Payments page
The new Analytics Dashboard will now have the following metrics:

  • Sessionizer Payment Intents based Metrics:

    • Total Payments Savings - Amount saved via Smart Retries
    • Payments Success Rate - Overall successful payment intents divided by total intents
    • Payment Lifecycle - Displayed as a Sankey
    • Total Payments Processed - Total payments processed amount and count based on all successful intents
    • Successful Payments Distribution - Overall successful intents divided by total number of intents based on group by
    • Failed Payments Distribution - Overall failed intents divided by total number of intents based on group by
  • Sessionizer Payment Attempts based Metrics:

    • Total Payments Processed - Total payments processed amount and count based on all successful attempts
    • Successful Payments Distribution - Overall successful attempts divided by total number of attempts based on group by
    • Failed Payments Distribution - Overall failed attempts divided by total number of attempts based on group by
    • Failure Reasons Distribution - Failure Reason count along with ratio of count / total failed attempts based on group by
  • Refunds based Metrics:

    • Total Refunds Processed - Successful refunds
  • Disputes based Metrics:

  • All Disputes - Total number of disputes irrespective of status

The following filters have been added:

  • Payment Attempts:

    • Merchant_id
    • Card last 4
    • Error Reason
    • Card Issuer
  • Payment Intents:

    • connector
    • authentication_type
    • payment_method
    • payment_method_type
    • card_network
    • merchant id
    • card_last_4
    • error_reason
    • card_issuer

New API endpoints for Payments Lifecycle (Sankey) on different levels:

Payments Lifecycle (Sankey)  
Org Level /analytics/v1/org/metrics/sankey
Merchant Level /analytics/v1/merchant/metrics/sankey
Profile Level /analytics/v1/profile/metrics/sankey

Separated out the existing payment_attempts and payment_intents based metrics and sessionizer_payment_attempts and sessionizer_payment_intents based metrics to support backwards compatibility

Additional Changes

  • This PR modifies the API contract
  • This PR modifies the database schema
  • This PR modifies application configuration/environment variables

Motivation and Context

Enhancing dashboard experience and providing meaningful and important data analytics for the merchants to make informed decisions

How did you test it?

Curls for different metrics (which are newly created or modified):
Payment Attempts based metrics:

  • sessionized_payment_processed_amount
curl --location 'http://localhost:8080/analytics/v1/org/metrics/payments' \
--header 'Accept: */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: http://localhost:9000' \
--header 'Referer: http://localhost:9000/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
--header 'api-key: test_admin' \
--header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNTQ5ZTNkMmItMTY5Yi00NzUzLWJmNTQtZDcxMTM2YjRiN2JkIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzI2MDQ2MzI4Iiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTcyODIxMTk4Nywib3JnX2lkIjoib3JnX1ZwU0hPanNZZkR2YWJWWUpnQ0FKIiwicHJvZmlsZV9pZCI6InByb19BN1F4SjN6TG05Z1NmYkZqUTNpNSJ9.RG85zvOvkm3vikVXppvevenXHkr-cI0nfIhGhiZcMts' \
--header 'sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '[
    {
        "timeRange": {
            "startTime": "2024-09-11T00:00:00Z",
            "endTime": "2024-10-01T23:30:00Z"
        },
        "groupByNames": [
            "connector", "payment_method"
        ],
        "filters": {
            "merchant_id": ["merchant_1726046328"]
        },
        "timeSeries": {
            "granularity": "G_ONEDAY"
        },
        "source": "BATCH",
        "metrics": [
            "sessionized_payment_processed_amount"
        ],
        "delta": true
    }
]'

Fields to look out for in the response body:
queryData:

"payment_processed_amount": 6540,
"payment_processed_count": 1,
"payment_processed_amount_without_smart_retries": 0,
"payment_processed_count_without_smart_retries": null,

metaData:

"total_payment_processed_amount": 117720,
"total_payment_processed_amount_without_smart_retries": 0,
"total_payment_processed_count": 18,
"total_payment_processed_count_without_smart_retries": 0,
  • payments_distribution
curl --location 'http://localhost:8080/analytics/v1/org/metrics/payments' \
--header 'Accept: */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: http://localhost:9000' \
--header 'Referer: http://localhost:9000/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
--header 'api-key: test_admin' \
--header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNTQ5ZTNkMmItMTY5Yi00NzUzLWJmNTQtZDcxMTM2YjRiN2JkIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzI2MDQ2MzI4Iiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTcyODIxMTk4Nywib3JnX2lkIjoib3JnX1ZwU0hPanNZZkR2YWJWWUpnQ0FKIiwicHJvZmlsZV9pZCI6InByb19BN1F4SjN6TG05Z1NmYkZqUTNpNSJ9.RG85zvOvkm3vikVXppvevenXHkr-cI0nfIhGhiZcMts' \
--header 'sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '[
    {
        "timeRange": {
            "startTime": "2024-09-11T00:00:00Z",
            "endTime": "2024-10-01T23:30:00Z"
        },
        "groupByNames": [
            "connector"
        ],
        "filters": {
            "merchant_id": ["merchant_1726046328"]
        },
        "source": "BATCH",
        "metrics": [
            "payments_distribution"
        ],
        "delta": true
    }
]'

Fields to look out for in the response body:
queryData:

"payments_success_rate_distribution": 75.0,
"payments_failure_rate_distribution": 25.0,
  • failure_reasons
curl --location 'http://localhost:8080/analytics/v1/org/metrics/payments' \
--header 'Accept: */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: http://localhost:9000' \
--header 'Referer: http://localhost:9000/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
--header 'api-key: test_admin' \
--header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNTQ5ZTNkMmItMTY5Yi00NzUzLWJmNTQtZDcxMTM2YjRiN2JkIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzI2MDQ2MzI4Iiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTcyODIxMTk4Nywib3JnX2lkIjoib3JnX1ZwU0hPanNZZkR2YWJWWUpnQ0FKIiwicHJvZmlsZV9pZCI6InByb19BN1F4SjN6TG05Z1NmYkZqUTNpNSJ9.RG85zvOvkm3vikVXppvevenXHkr-cI0nfIhGhiZcMts' \
--header 'sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '[
    {
        "timeRange": {
            "startTime": "2024-09-11T00:00:00Z",
            "endTime": "2024-10-01T23:30:00Z"
        },
        "groupByNames": [
            "connector", "error_reason"
        ],
        "filters": {
            "merchant_id": ["merchant_1726046328"]
        },
        "source": "BATCH",
        "metrics": [
            "failure_reasons"
        ],
        "delta": true
    }
]'

Fields to look out for in the response body:
queryData:

"connector": "adyen",
"failure_reason_count": 1,
"failure_reason_count_without_smart_retries": 0,
"error_reason": "Test Failure Reason 4",

metaData:

"total_failure_reasons_count": 7,
"total_failure_reasons_count_without_smart_retries": 0

Payment Intents based metrics:

  • sessionized_smart_retried_amount
curl --location 'http://localhost:8080/analytics/v2/org/metrics/payments' \
--header 'Accept: */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: http://localhost:9000' \
--header 'QueryType: SingleStatTimeseries' \
--header 'Referer: http://localhost:9000/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
--header 'api-key: dev_LZcIA7XeMpnK5satp4CDvjcnHCaeKTBcosyuBBJaknZu1odhFo96cwS0nSdfzuJF' \
--header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNTQ5ZTNkMmItMTY5Yi00NzUzLWJmNTQtZDcxMTM2YjRiN2JkIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzI2MDQ2MzI4Iiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTcyODIxMTk4Nywib3JnX2lkIjoib3JnX1ZwU0hPanNZZkR2YWJWWUpnQ0FKIiwicHJvZmlsZV9pZCI6InByb19BN1F4SjN6TG05Z1NmYkZqUTNpNSJ9.RG85zvOvkm3vikVXppvevenXHkr-cI0nfIhGhiZcMts' \
--header 'sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '[
    {
        "timeRange": {
            "startTime": "2024-09-11T00:00:00Z",
            "endTime": "2024-09-26T09:22:30Z"
        },
        "timeSeries": {
            "granularity": "G_ONEDAY"
        },
        "filters": {
            "merchant_id": ["merchant_1726046328"]
        },
        "mode": "ORDER",
        "source": "BATCH",
        "metrics": [
            "sessionized_smart_retried_amount"
        ]
    }
]'

Fields to look out for in the response body
queryData:

"smart_retried_amount": 6540,
"smart_retried_amount_without_smart_retries": 0,

metaData

"total_smart_retried_amount": 6540,
"total_smart_retried_amount_without_smart_retries": 0
  • sessionized_payments_success_rate
curl --location 'http://localhost:8080/analytics/v2/org/metrics/payments' \
--header 'Accept: */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: http://localhost:9000' \
--header 'QueryType: SingleStatTimeseries' \
--header 'Referer: http://localhost:9000/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
--header 'api-key: dev_LZcIA7XeMpnK5satp4CDvjcnHCaeKTBcosyuBBJaknZu1odhFo96cwS0nSdfzuJF' \
--header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNTQ5ZTNkMmItMTY5Yi00NzUzLWJmNTQtZDcxMTM2YjRiN2JkIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzI2MDQ2MzI4Iiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTcyODIxMTk4Nywib3JnX2lkIjoib3JnX1ZwU0hPanNZZkR2YWJWWUpnQ0FKIiwicHJvZmlsZV9pZCI6InByb19BN1F4SjN6TG05Z1NmYkZqUTNpNSJ9.RG85zvOvkm3vikVXppvevenXHkr-cI0nfIhGhiZcMts' \
--header 'sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '[
    {
        "timeRange": {
            "startTime": "2024-09-11T00:00:00Z",
            "endTime": "2024-09-26T09:22:30Z"
        },
        "timeSeries": {
            "granularity": "G_ONEDAY"
        },
        "filters": {
            "merchant_id": ["merchant_1726046328"]
        },
        "mode": "ORDER",
        "source": "BATCH",
        "metrics": [
            "sessionized_payments_success_rate"
        ]
    }
]'

Fields to look out for in the response body:
queryData:

"successful_payments": 7,
"successful_payments_without_smart_retries": 7,
"total_payments": 7,
"payments_success_rate": 100.0,
"payments_success_rate_without_smart_retries": 100.0,

metaData:

"total_success_rate": 88.23529411764706,
"total_success_rate_without_smart_retries": 82.3529411764706,
  • sessionized_payment_processed_amount
curl --location 'http://localhost:8080/analytics/v2/org/metrics/payments' \
--header 'Accept: */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: http://localhost:9000' \
--header 'QueryType: SingleStatTimeseries' \
--header 'Referer: http://localhost:9000/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
--header 'api-key: dev_LZcIA7XeMpnK5satp4CDvjcnHCaeKTBcosyuBBJaknZu1odhFo96cwS0nSdfzuJF' \
--header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNTQ5ZTNkMmItMTY5Yi00NzUzLWJmNTQtZDcxMTM2YjRiN2JkIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzI2MDQ2MzI4Iiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTcyODczNDQyMywib3JnX2lkIjoib3JnX1ZwU0hPanNZZkR2YWJWWUpnQ0FKIiwicHJvZmlsZV9pZCI6InByb192NXNGb0hlODBPZWlVbElvbm9jTSJ9.716-yn9HhCUU6-1lymVwVWtd82GG4u2m2t_bbcG3cwc' \
--header 'sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '[
    {
        "timeRange": {
            "startTime": "2024-09-11T00:00:00Z",
            "endTime": "2024-10-26T09:22:30Z"
        },
        "timeSeries": {
            "granularity": "G_ONEDAY"
        },
        "filters": {
            "merchant_id": ["merchant_1726046328"]
        },
        "groupByNames": [
            "connector"
        ],
        "mode": "ORDER",
        "source": "BATCH",
        "metrics": [
            "sessionized_payment_processed_amount"
        ]
    }
]'

Fields to look out for in the response body:
queryData:

"payment_processed_amount": 26160,
"payment_processed_count": 4,
"payment_processed_amount_without_smart_retries": 19620,
"payment_processed_count_without_smart_retries": 3,

metaData:

"total_payment_processed_amount": 26160,
"total_payment_processed_amount_without_smart_retries": 19620,
"total_payment_processed_count": 4,
"total_payment_processed_count_without_smart_retries": 3
  • sessionized_payments_distribution
curl --location 'http://localhost:8080/analytics/v2/org/metrics/payments' \
--header 'Accept: */*' \
--header 'Accept-Language: en-US,en;q=0.9' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/json' \
--header 'Origin: http://localhost:9000' \
--header 'QueryType: SingleStatTimeseries' \
--header 'Referer: http://localhost:9000/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-site' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
--header 'api-key: dev_LZcIA7XeMpnK5satp4CDvjcnHCaeKTBcosyuBBJaknZu1odhFo96cwS0nSdfzuJF' \
--header 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNTQ5ZTNkMmItMTY5Yi00NzUzLWJmNTQtZDcxMTM2YjRiN2JkIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzI2MDQ2MzI4Iiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTcyODczNDQyMywib3JnX2lkIjoib3JnX1ZwU0hPanNZZkR2YWJWWUpnQ0FKIiwicHJvZmlsZV9pZCI6InByb192NXNGb0hlODBPZWlVbElvbm9jTSJ9.716-yn9HhCUU6-1lymVwVWtd82GG4u2m2t_bbcG3cwc' \
--header 'sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--data '[
    {
        "timeRange": {
            "startTime": "2024-09-11T00:00:00Z",
            "endTime": "2024-10-26T09:22:30Z"
        },
        "timeSeries": {
            "granularity": "G_ONEDAY"
        },
        "filters": {
            "merchant_id": ["merchant_1726046328"]
        },
        "groupByNames": [
            "connector"
        ],
        "mode": "ORDER",
        "source": "BATCH",
        "metrics": [
            "sessionized_payments_distribution"
        ]
    }
]'

Fields to look out for in the response body:
queryData:

"payments_success_rate_distribution_without_smart_retries": 50.0,
"payments_failure_rate_distribution_without_smart_retries": 16.666666666666668,

Checklist

  • I formatted the code cargo +nightly fmt --all
  • I addressed lints thrown by cargo clippy
  • I reviewed the submitted code
  • I added unit tests for my changes where possible

@tsdk02 tsdk02 added C-feature Category: Feature request or enhancement A-Analytics labels Sep 12, 2024
@tsdk02 tsdk02 self-assigned this Sep 12, 2024
@tsdk02 tsdk02 requested a review from a team as a code owner September 12, 2024 08:10
Copy link

semanticdiff-com bot commented Sep 12, 2024

Review changes with SemanticDiff.

Analyzed 55 of 55 files.

Overall, the semantic diff is 2% smaller than the GitHub diff.

File Information
Filename Status
✔️ crates/router/src/analytics.rs Analyzed
✔️ crates/api_models/src/analytics.rs Analyzed
✔️ crates/api_models/src/events.rs Analyzed
✔️ crates/api_models/src/analytics/payment_intents.rs 3.74% smaller
✔️ crates/api_models/src/analytics/payments.rs Analyzed
✔️ crates/analytics/src/clickhouse.rs 12.84% smaller
✔️ crates/analytics/src/lib.rs Analyzed
✔️ crates/analytics/src/payment_intents.rs Analyzed
✔️ crates/analytics/src/query.rs 2.99% smaller
✔️ crates/analytics/src/sqlx.rs Analyzed
✔️ crates/analytics/src/types.rs Analyzed
✔️ crates/analytics/src/utils.rs 25.14% smaller
✔️ crates/analytics/src/payments/accumulator.rs 1.56% smaller
✔️ crates/analytics/src/payments/core.rs 24.82% smaller
✔️ crates/analytics/src/payments/distribution.rs Analyzed
✔️ crates/analytics/src/payments/filters.rs Analyzed
✔️ crates/analytics/src/payments/metrics.rs Analyzed
✔️ crates/analytics/src/payments/types.rs 0.0% smaller
✔️ crates/analytics/src/payments/metrics/avg_ticket_size.rs Analyzed
✔️ crates/analytics/src/payments/metrics/connector_success_rate.rs Analyzed
✔️ crates/analytics/src/payments/metrics/payment_count.rs Analyzed
✔️ crates/analytics/src/payments/metrics/payment_processed_amount.rs Analyzed
✔️ crates/analytics/src/payments/metrics/payment_success_count.rs Analyzed
✔️ crates/analytics/src/payments/metrics/retries_count.rs Analyzed
✔️ crates/analytics/src/payments/metrics/success_rate.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/avg_ticket_size.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/connector_success_rate.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/failure_reasons.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/mod.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/payment_count.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/payment_processed_amount.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/payment_success_count.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/payments_distribution.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/retries_count.rs Analyzed
✔️ crates/analytics/src/payments/metrics/sessionized_metrics/success_rate.rs Analyzed
✔️ crates/analytics/src/payments/distribution/payment_error_message.rs Analyzed
✔️ crates/analytics/src/payment_intents/accumulator.rs 2.04% smaller
✔️ crates/analytics/src/payment_intents/core.rs 14.54% smaller
✔️ crates/analytics/src/payment_intents/filters.rs 0.15% smaller
✔️ crates/analytics/src/payment_intents/metrics.rs Analyzed
✔️ crates/analytics/src/payment_intents/sankey.rs Analyzed
✔️ crates/analytics/src/payment_intents/types.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/payment_intent_count.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/payments_success_rate.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/smart_retried_amount.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/successful_smart_retries.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/total_smart_retries.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/mod.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/payment_intent_count.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/payment_processed_amount.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/payments_distribution.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/payments_success_rate.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/smart_retried_amount.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/successful_smart_retries.rs Analyzed
✔️ crates/analytics/src/payment_intents/metrics/sessionized_metrics/total_smart_retries.rs Analyzed

@tsdk02 tsdk02 requested a review from a team as a code owner September 19, 2024 12:06
@tsdk02 tsdk02 changed the title feat(analytics): Add metrics, filters and APIs for Analytics v3 Dashboard feat(analytics): Add metrics, filters and APIs for Analytics v2 Dashboard Sep 25, 2024
@tsdk02 tsdk02 changed the title feat(analytics): Add metrics, filters and APIs for Analytics v2 Dashboard feat(analytics): Add metrics, filters and APIs for Analytics v2 Dashboard - Overview Page Oct 6, 2024
@tsdk02 tsdk02 changed the title feat(analytics): Add metrics, filters and APIs for Analytics v2 Dashboard - Overview Page feat(analytics): Add metrics, filters and APIs for Analytics v2 Dashboard - Payments Page Oct 10, 2024
Copy link
Contributor

@lsampras lsampras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR,
a lot of features to the query builder & accumulator as well

@likhinbopanna likhinbopanna added this pull request to the merge queue Oct 14, 2024
Merged via the queue into main with commit f123df9 Oct 14, 2024
14 of 17 checks passed
@likhinbopanna likhinbopanna deleted the analytics-v3 branch October 14, 2024 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Analytics C-feature Category: Feature request or enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat(analytics): Add metrics, filters and APIs for Analytics v2 Dashboard - Payments Page
4 participants