02 · Avance Proyecto
Generar tráfico
1. Create Inventory
curl -i \
-X POST http://localhost:3000/inventory \
-H "Content-Type: application/json" \
-d '{"sku":"ABC-1234-AB","qty":10}'
2. Get Inventory
curl -i http://localhost:3000/inventory/ABC-1234-AB
3. Reserve Quantity
curl -i -X POST http://localhost:3000/inventory/ABC-1234-AB/reserve \
-H "Content-Type: application/json" \
-d '{"qty":5,"orderId":"order-001"}'
4. Release Quantity
curl -i -X POST http://localhost:3000/inventory/ABC-1234-AB/release \
-H "Content-Type: application/json" \
-d '{"qty":3,"orderId":"order-001"}'
5. Replenish Inventory
curl -i -X POST http://localhost:3000/inventory/ABC-1234-AB/replenish \
-H "Content-Type: application/json" \
-d '{"qty":20}'
Posibles Gráficas de Dashboards:
1. Service Health & Traffic Overview
Panels & PromQL
Total RPS
sum(rate(http_server_requests_total[1m]))
Latency P95 / P99
histogram_quantile(0.95, sum(rate(http_server_request_duration_seconds_bucket[5m])) by (le)) histogram_quantile(0.99, sum(rate(http_server_request_duration_seconds_bucket[5m])) by (le))
Error Rate (%)
100 * sum(rate(http_server_requests_errors_total[1m])) / sum(rate(http_server_requests_total[1m]))
2. HTTP Endpoint Performance
Variable:
$route
(set via Dashboard settings → Variables → New → Label “route” with querylabel_values(http_server_request_duration_seconds_bucket, route)
)Panels (templated by
$route
)RPS by route
sum by(route)(rate(http_server_requests_total{route="$route"}[1m]))
P99 latency by route
histogram_quantile(0.99, sum(rate(http_server_request_duration_seconds_bucket{route="$route"}[5m])) by (le,route))
3. Database Query Metrics
Panels
DB QPS
sum(rate(prisma_query_duration_seconds_count[1m]))
Slow Queries P95
histogram_quantile(0.95, sum(rate(prisma_query_duration_seconds_bucket[5m])) by (le))
Connection Pool Usage (if instrumented)
prisma_pool_active_connections
4. RabbitMQ Messaging Health
Panels
Messages Published/sec
sum(rate(rabbitmq_channel_messages_published_total[1m]))
Queue Depth (per queue)
rabbitmq_queue_messages_ready{queue=~".*"}
Consumer Ack Rate
sum(rate(rabbitmq_channel_messages_ack_total[1m]))
5. End-to-End Trace Explorer
Setup: Install the Tempo (or Jaeger) data source plugin
Panels:
Service Map (built-in)
Recent Traces Table: link traces to slow requests
6. Error & Exception Breakdown
Panels
Top Exceptions
topk(10, sum by(exception)(rate(process_exceptions_total[1m])))
5xx Rate
sum(rate(http_server_responses_total{code=~"5.."}[1m]))
7. Resource Utilization
Panels
CPU (%)
rate(process_cpu_seconds_total[1m]) * 100
Memory RSS
process_resident_memory_bytes
Event-Loop Lag (if instrumented)
nodejs_eventloop_lag_seconds
8. Business-Event Metrics
Panels
Replenish Events/sec
sum(rate(app_event_ProductInventoryReplenished_total[1m]))
Reserve Events/sec
sum(rate(app_event_ProductInventoryReserved_total[1m]))
Replenish / Reserve Ratio
sum(rate(app_event_ProductInventoryReplenished_total[1m])) / sum(rate(app_event_ProductInventoryReserved_total[1m]))
Última actualización