2026-02-23 18:54:01 +00:00
{
"annotations" : { "list" : [ ] } ,
"editable" : true ,
"fiscalYearStartMonth" : 0 ,
"graphTooltip" : 1 ,
"id" : null ,
"links" : [ ] ,
"liveNow" : false ,
"panels" : [
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : {
"defaults" : { "unit" : "reqps" , "color" : { "mode" : "palette-classic" } } ,
"overrides" : [ ]
} ,
"gridPos" : { "h" : 6 , "w" : 6 , "x" : 0 , "y" : 0 } ,
"id" : 1 ,
"options" : { "reduceOptions" : { "calcs" : [ "lastNotNull" ] } , "orientation" : "auto" , "showThresholdLabels" : false } ,
"targets" : [ { "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*marketplace.*\"}[5m]))" , "refId" : "A" } ] ,
"title" : "Marketplace request rate" ,
"type" : "stat"
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : {
"defaults" : { "unit" : "reqps" , "color" : { "mode" : "palette-classic" } } ,
"overrides" : [ ]
} ,
"gridPos" : { "h" : 6 , "w" : 6 , "x" : 6 , "y" : 0 } ,
"id" : 2 ,
"options" : { "reduceOptions" : { "calcs" : [ "lastNotNull" ] } , "orientation" : "auto" , "showThresholdLabels" : false } ,
"targets" : [ { "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*commerce.*\"}[5m]))" , "refId" : "A" } ] ,
"title" : "Commerce request rate" ,
"type" : "stat"
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : {
"defaults" : { "unit" : "s" , "color" : { "mode" : "palette-classic" } } ,
"overrides" : [ ]
} ,
"gridPos" : { "h" : 6 , "w" : 6 , "x" : 12 , "y" : 0 } ,
"id" : 3 ,
"options" : { "reduceOptions" : { "calcs" : [ "lastNotNull" ] } , "orientation" : "auto" , "showThresholdLabels" : false } ,
"targets" : [ { "expr" : "histogram_quantile(0.95, sum(rate(veza_gin_http_request_duration_seconds_bucket{job=\"veza-backend\",path=~\".*marketplace.*|.*commerce.*\"}[5m])) by (le))" , "refId" : "A" } ] ,
"title" : "Commerce p95 latency" ,
"type" : "stat"
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : {
"defaults" : { "unit" : "short" , "color" : { "mode" : "palette-classic" } } ,
"overrides" : [ ]
} ,
"gridPos" : { "h" : 6 , "w" : 6 , "x" : 18 , "y" : 0 } ,
"id" : 4 ,
"options" : { "reduceOptions" : { "calcs" : [ "lastNotNull" ] } , "orientation" : "auto" , "showThresholdLabels" : false } ,
"targets" : [ { "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*orders.*\",status=~\"2..\"}[5m]))" , "refId" : "A" } ] ,
"title" : "Orders success rate" ,
"type" : "stat"
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : {
"defaults" : { "unit" : "reqps" , "color" : { "mode" : "palette-classic" } } ,
"overrides" : [ ]
} ,
"gridPos" : { "h" : 8 , "w" : 12 , "x" : 0 , "y" : 6 } ,
"id" : 5 ,
"options" : { "legend" : { "displayMode" : "list" , "placement" : "bottom" } } ,
"targets" : [ { "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*marketplace.*|.*commerce.*\"}[5m])) by (path)" , "legendFormat" : "{{path}}" , "refId" : "A" } ] ,
"title" : "Commerce endpoints by path" ,
"type" : "timeseries"
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : {
"defaults" : { "unit" : "short" , "color" : { "mode" : "palette-classic" } } ,
"overrides" : [ ]
} ,
"gridPos" : { "h" : 8 , "w" : 12 , "x" : 12 , "y" : 6 } ,
"id" : 6 ,
"options" : { "legend" : { "displayMode" : "list" , "placement" : "bottom" } } ,
"targets" : [
{ "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*orders.*\"}[5m]))" , "legendFormat" : "orders" , "refId" : "A" } ,
{ "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*cart.*\"}[5m]))" , "legendFormat" : "cart" , "refId" : "B" } ,
{ "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*refund.*\"}[5m]))" , "legendFormat" : "refund" , "refId" : "C" }
] ,
"title" : "Orders, cart, refund rate" ,
"type" : "timeseries"
chore(release): v0.602 — Payout, Dette Technique & Tests E2E
- Stripe Connect: onboarding, balance, SellerDashboardView
- Interceptors: auth.ts, error.ts extracted, facade
- Grafana: dashboards enriched (p50, top endpoints, 4xx, WS, commerce)
- E2E commerce: product->order->review->invoice
- SMOKE_TEST_V0602, RETROSPECTIVE_V0602, PAYOUT_MANUAL
- Archive V0_602 scope, V0_603 placeholder, SCOPE_CONTROL v0.603
- Fix sanitizer regex (Go no backreferences)
- Marketplace test schema: product_licenses, product_images, orders, licenses
2026-02-23 21:32:01 +00:00
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : { "defaults" : { "unit" : "short" , "color" : { "mode" : "palette-classic" } } , "overrides" : [ ] } ,
"gridPos" : { "h" : 6 , "w" : 6 , "x" : 0 , "y" : 14 } ,
"id" : 7 ,
"options" : { "reduceOptions" : { "calcs" : [ "lastNotNull" ] } , "orientation" : "auto" , "showThresholdLabels" : false } ,
"targets" : [ { "expr" : "sum(rate(veza_commerce_orders_total{job=\"veza-backend\"}[5m])) by (status)" , "refId" : "A" } ] ,
"title" : "Orders by status (rate)" ,
"type" : "stat"
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : { "defaults" : { "unit" : "s" , "color" : { "mode" : "palette-classic" } } , "overrides" : [ ] } ,
"gridPos" : { "h" : 6 , "w" : 6 , "x" : 6 , "y" : 14 } ,
"id" : 8 ,
"options" : { "reduceOptions" : { "calcs" : [ "lastNotNull" ] } , "orientation" : "auto" , "showThresholdLabels" : false } ,
"targets" : [ { "expr" : "histogram_quantile(0.95, sum(rate(veza_commerce_checkout_duration_seconds_bucket{job=\"veza-backend\"}[5m])) by (le))" , "refId" : "A" } ] ,
"title" : "Checkout p95 duration" ,
"type" : "stat"
} ,
{
"datasource" : { "type" : "prometheus" , "uid" : "prometheus" } ,
"fieldConfig" : { "defaults" : { "unit" : "reqps" , "color" : { "mode" : "palette-classic" } } , "overrides" : [ ] } ,
"gridPos" : { "h" : 8 , "w" : 12 , "x" : 12 , "y" : 14 } ,
"id" : 9 ,
"options" : { "legend" : { "displayMode" : "list" , "placement" : "bottom" } } ,
"targets" : [
{ "expr" : "sum(rate(veza_commerce_orders_total{job=\"veza-backend\"}[5m])) by (status)" , "legendFormat" : "orders {{status}}" , "refId" : "A" } ,
{ "expr" : "sum(rate(veza_gin_http_requests_total{job=\"veza-backend\",path=~\".*sell/balance.*\"}[5m]))" , "legendFormat" : "payout balance" , "refId" : "B" }
] ,
"title" : "Orders and payout requests" ,
"type" : "timeseries"
2026-02-23 18:54:01 +00:00
}
] ,
"refresh" : "30s" ,
"schemaVersion" : 38 ,
"style" : "dark" ,
"tags" : [ "veza" , "commerce" ] ,
"templating" : { "list" : [ ] } ,
"time" : { "from" : "now-1h" , "to" : "now" } ,
"timepicker" : { } ,
"timezone" : "browser" ,
"title" : "Veza Commerce Overview" ,
"uid" : "veza-commerce-overview" ,
"version" : 1
}