perf-sentinel 0.5.13

CLI for perf-sentinel: polyglot performance anti-pattern detector
[
  {
    "timestamp": "2025-07-10T14:32:01.000Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-1",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_item WHERE order_id = 1",
    "duration_us": 800,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.050Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-2",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_item WHERE order_id = 2",
    "duration_us": 750,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.100Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-3",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_item WHERE order_id = 3",
    "duration_us": 900,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.150Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-4",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_item WHERE order_id = 4",
    "duration_us": 820,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.200Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-5",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_item WHERE order_id = 5",
    "duration_us": 700,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.250Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-6",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_item WHERE order_id = 6",
    "duration_us": 850,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.300Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-7",
    "service": "order-svc",
    "type": "http_out",
    "operation": "GET",
    "target": "http://user-svc:5000/api/users/101",
    "duration_us": 12000,
    "status_code": 200,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.350Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-8",
    "service": "order-svc",
    "type": "http_out",
    "operation": "GET",
    "target": "http://user-svc:5000/api/users/102",
    "duration_us": 11000,
    "status_code": 200,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.400Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-9",
    "service": "order-svc",
    "type": "http_out",
    "operation": "GET",
    "target": "http://user-svc:5000/api/users/103",
    "duration_us": 13000,
    "status_code": 200,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.450Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-10",
    "service": "order-svc",
    "type": "http_out",
    "operation": "GET",
    "target": "http://user-svc:5000/api/users/104",
    "duration_us": 14000,
    "status_code": 200,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.500Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-11",
    "service": "order-svc",
    "type": "http_out",
    "operation": "GET",
    "target": "http://user-svc:5000/api/users/105",
    "duration_us": 10000,
    "status_code": 200,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.550Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-12",
    "service": "order-svc",
    "type": "http_out",
    "operation": "GET",
    "target": "http://user-svc:5000/api/users/106",
    "duration_us": 11500,
    "status_code": 200,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.600Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-slow-1",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_status WHERE order_id = 42",
    "duration_us": 750000,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.700Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-slow-2",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_status WHERE order_id = 43",
    "duration_us": 800000,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:01.800Z",
    "trace_id": "trace-demo-order",
    "span_id": "span-slow-3",
    "service": "order-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM order_status WHERE order_id = 44",
    "duration_us": 2600000,
    "source": { "endpoint": "POST /api/orders/42/submit", "method": "OrderService::create_order" }
  },
  {
    "timestamp": "2025-07-10T14:32:02.000Z",
    "trace_id": "trace-demo-clean",
    "span_id": "span-20",
    "service": "user-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM users WHERE id = 1",
    "duration_us": 500,
    "source": { "endpoint": "GET /api/users/1", "method": "UserService::get_user" }
  },
  {
    "timestamp": "2025-07-10T14:32:02.050Z",
    "trace_id": "trace-demo-clean",
    "span_id": "span-21",
    "service": "user-svc",
    "type": "sql",
    "operation": "SELECT",
    "target": "SELECT * FROM orders WHERE user_id = 1",
    "duration_us": 600,
    "source": { "endpoint": "GET /api/users/1", "method": "UserService::get_user" }
  },

  {"timestamp":"2025-07-10T14:32:03.000Z","trace_id":"trace-demo-chatty","span_id":"chatty-1","service":"gateway","type":"http_out","operation":"GET","target":"http://user-svc:5000/api/users/101","duration_us":8000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.010Z","trace_id":"trace-demo-chatty","span_id":"chatty-2","service":"gateway","type":"http_out","operation":"GET","target":"http://user-svc:5000/api/users/102","duration_us":7500,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.020Z","trace_id":"trace-demo-chatty","span_id":"chatty-3","service":"gateway","type":"http_out","operation":"GET","target":"http://user-svc:5000/api/users/103","duration_us":9000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.030Z","trace_id":"trace-demo-chatty","span_id":"chatty-4","service":"gateway","type":"http_out","operation":"GET","target":"http://user-svc:5000/api/users/104","duration_us":8200,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.040Z","trace_id":"trace-demo-chatty","span_id":"chatty-5","service":"gateway","type":"http_out","operation":"GET","target":"http://user-svc:5000/api/users/105","duration_us":7800,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.050Z","trace_id":"trace-demo-chatty","span_id":"chatty-6","service":"gateway","type":"http_out","operation":"GET","target":"http://user-svc:5000/api/users/106","duration_us":8500,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.060Z","trace_id":"trace-demo-chatty","span_id":"chatty-7","service":"gateway","type":"http_out","operation":"GET","target":"http://inventory-svc:5000/api/inventory/1001","duration_us":12000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.070Z","trace_id":"trace-demo-chatty","span_id":"chatty-8","service":"gateway","type":"http_out","operation":"GET","target":"http://inventory-svc:5000/api/inventory/1002","duration_us":11000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.080Z","trace_id":"trace-demo-chatty","span_id":"chatty-9","service":"gateway","type":"http_out","operation":"GET","target":"http://inventory-svc:5000/api/inventory/1003","duration_us":13000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.090Z","trace_id":"trace-demo-chatty","span_id":"chatty-10","service":"gateway","type":"http_out","operation":"GET","target":"http://inventory-svc:5000/api/inventory/1004","duration_us":10500,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.100Z","trace_id":"trace-demo-chatty","span_id":"chatty-11","service":"gateway","type":"http_out","operation":"GET","target":"http://inventory-svc:5000/api/inventory/1005","duration_us":11500,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.110Z","trace_id":"trace-demo-chatty","span_id":"chatty-12","service":"gateway","type":"http_out","operation":"GET","target":"http://pricing-svc:5000/api/pricing/quote","duration_us":15000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.120Z","trace_id":"trace-demo-chatty","span_id":"chatty-13","service":"gateway","type":"http_out","operation":"GET","target":"http://shipping-svc:5000/api/shipping/estimate","duration_us":18000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.130Z","trace_id":"trace-demo-chatty","span_id":"chatty-14","service":"gateway","type":"http_out","operation":"GET","target":"http://tax-svc:5000/api/tax/calculate","duration_us":9000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.140Z","trace_id":"trace-demo-chatty","span_id":"chatty-15","service":"gateway","type":"http_out","operation":"GET","target":"http://loyalty-svc:5000/api/loyalty/points","duration_us":7000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.150Z","trace_id":"trace-demo-chatty","span_id":"chatty-16","service":"gateway","type":"http_out","operation":"GET","target":"http://notification-svc:5000/api/notifications/send","duration_us":5000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.160Z","trace_id":"trace-demo-chatty","span_id":"chatty-17","service":"gateway","type":"http_out","operation":"GET","target":"http://audit-svc:5000/api/audit/log","duration_us":4000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},
  {"timestamp":"2025-07-10T14:32:03.170Z","trace_id":"trace-demo-chatty","span_id":"chatty-18","service":"gateway","type":"http_out","operation":"GET","target":"http://analytics-svc:5000/api/analytics/track","duration_us":3000,"status_code":200,"source":{"endpoint":"POST /api/orders/99/submit","method":"Gateway::submit_order"}},

  {"timestamp":"2025-07-10T14:32:04.000Z","trace_id":"trace-demo-pool","span_id":"pool-root","parent_span_id":null,"service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT 1","duration_us":500000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-1","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT * FROM accounts WHERE id = 42","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-2","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT balance FROM wallets WHERE user_id = 42","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-3","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT * FROM transactions WHERE account_id = 42 ORDER BY created_at DESC LIMIT 10","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-4","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT * FROM payment_methods WHERE user_id = 42 AND active = true","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-5","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT * FROM fraud_checks WHERE transaction_id = 99","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-6","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"INSERT","target":"INSERT INTO audit_log (event, user_id) VALUES ('charge_attempt', 42)","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-7","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"UPDATE","target":"UPDATE accounts SET last_charged_at = NOW() WHERE id = 42","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-8","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT rate FROM exchange_rates WHERE currency = 'EUR'","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-9","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT * FROM spending_limits WHERE user_id = 42","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-10","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT * FROM discount_codes WHERE code = 'SAVE10'","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-11","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT fee FROM merchant_fees WHERE merchant_id = 7","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},
  {"timestamp":"2025-07-10T14:32:04.010Z","trace_id":"trace-demo-pool","span_id":"pool-12","parent_span_id":"pool-root","service":"payment-svc","type":"sql","operation":"SELECT","target":"SELECT * FROM compliance_rules WHERE region = 'EU'","duration_us":200000,"source":{"endpoint":"POST /api/payments/charge","method":"PaymentService::charge"}},

  {"timestamp":"2025-07-10T14:32:05.000Z","trace_id":"trace-demo-serial","span_id":"serial-root","parent_span_id":null,"service":"checkout-svc","type":"http_out","operation":"POST","target":"http://gateway:5000/api/checkout/finalize","duration_us":800000,"status_code":200,"source":{"endpoint":"POST /api/checkout/finalize","method":"CheckoutService::finalize"}},
  {"timestamp":"2025-07-10T14:32:05.100Z","trace_id":"trace-demo-serial","span_id":"serial-1","parent_span_id":"serial-root","service":"checkout-svc","type":"http_out","operation":"GET","target":"http://user-svc:5000/api/users/42","duration_us":120000,"status_code":200,"source":{"endpoint":"POST /api/checkout/finalize","method":"CheckoutService::finalize"}},
  {"timestamp":"2025-07-10T14:32:05.230Z","trace_id":"trace-demo-serial","span_id":"serial-2","parent_span_id":"serial-root","service":"checkout-svc","type":"http_out","operation":"GET","target":"http://inventory-svc:5000/api/inventory/check","duration_us":95000,"status_code":200,"source":{"endpoint":"POST /api/checkout/finalize","method":"CheckoutService::finalize"}},
  {"timestamp":"2025-07-10T14:32:05.335Z","trace_id":"trace-demo-serial","span_id":"serial-3","parent_span_id":"serial-root","service":"checkout-svc","type":"http_out","operation":"GET","target":"http://pricing-svc:5000/api/pricing/quote","duration_us":80000,"status_code":200,"source":{"endpoint":"POST /api/checkout/finalize","method":"CheckoutService::finalize"}},
  {"timestamp":"2025-07-10T14:32:05.425Z","trace_id":"trace-demo-serial","span_id":"serial-4","parent_span_id":"serial-root","service":"checkout-svc","type":"http_out","operation":"GET","target":"http://shipping-svc:5000/api/shipping/estimate","duration_us":60000,"status_code":200,"source":{"endpoint":"POST /api/checkout/finalize","method":"CheckoutService::finalize"}}
]