hyperswitch
hyperswitch copied to clipboard
feat(analytics): added client columns in payments analytics
Type of Change
- [ ] Bugfix
- [x] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD
Description
Added client columns in payments analytics
ClientSource
, ClientVersion
Depends on https://github.com/juspay/hyperswitch/pull/4657
closes #4656
Additional Changes
- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables
Motivation and Context
How did you test it?
curl --location 'localhost:8080/analytics/v1/metrics/payments' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer token...' \ --data '[ { "timeRange": { "startTime": "2024-01-13T18:30:00Z", "endTime": "2024-06-16T18:30:00Z" }, "metrics": [ "payment_success_rate", "payment_count", "payment_success_count", "payment_processed_amount", "avg_ticket_size" ], "groupByNames": [ "connector", "payment_method", "payment_method_type", "currency", "authentication_type", "status", "client_source", "client_version" ] } ]'
{ "queryData": [ { "payment_success_rate": null, "payment_count": 1, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": "failure", "connector": "stripe", "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": "credit", "client_source": null, "client_version": null, "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" }, { "payment_success_rate": null, "payment_count": 1, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": "failure", "connector": "stripe", "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": null, "client_source": "test", "client_version": "test2", "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" }, { "payment_success_rate": 0.0, "payment_count": null, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": null, "connector": "stripe", "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": "credit", "client_source": null, "client_version": null, "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" }, { "payment_success_rate": 0.0, "payment_count": null, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": null, "connector": "stripe", "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": null, "client_source": null, "client_version": null, "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" }, { "payment_success_rate": null, "payment_count": 1, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": "confirmation_awaited", "connector": null, "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": "credit", "client_source": null, "client_version": null, "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" }, { "payment_success_rate": 0.0, "payment_count": null, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": null, "connector": "stripe", "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": null, "client_source": "test", "client_version": "test2", "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" }, { "payment_success_rate": 0.0, "payment_count": null, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": null, "connector": null, "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": "credit", "client_source": null, "client_version": null, "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" }, { "payment_success_rate": null, "payment_count": 4, "payment_success_count": null, "payment_processed_amount": 0, "avg_ticket_size": null, "payment_error_message": null, "retries_count": null, "retries_amount_processed": 0, "connector_success_rate": null, "currency": "USD", "status": "failure", "connector": "stripe", "authentication_type": "no_three_ds", "payment_method": "card", "payment_method_type": null, "client_source": null, "client_version": null, "time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" }, "time_bucket": "2024-01-13 18:30:00" } ], "metaData": [ { "current_time_range": { "start_time": "2024-01-13T18:30:00.000Z", "end_time": "2024-06-16T18:30:00.000Z" } } ] }
Checklist
- [x] I formatted the code
cargo +nightly fmt --all
- [x] I addressed lints thrown by
cargo clippy
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible