Example Dashboards on Grafana for Apinizer Gateway
For Grafana Setup and Prometheus Integration as a Data Source, you can refer to our related documentation.
Panel 1: Total API Request Volume by Request Type
PromQL Queries
- A (Total Requests):
sum(rate(apinizer_api_traffic_total_count_total[5m])) - B (Successful Requests):
sum(rate(apinizer_api_traffic_success_count_total[5m])) - C (Failed Requests):
sum(rate(apinizer_api_traffic_error_count_total[5m]))
Visualization: Timeseries
Panel Settings:
- Use different colors for each query (e.g., Total=blue, Successful=green, Failed=red)
- Enable legend
- Use "req/s" as Y-axis unit
Panel 2: APIs with Highest Traffic Volume
Shows the top 5 APIs with the highest traffic volume in the last 100 minutes.
PromQL Queries
- A (Top 5 APIs):
topk(5, sum by (api_name) (increase(apinizer_api_traffic_total_count_tagged_total[100m])))
Visualization: Bar gauge or Bar chart
Panel Settings:
- Direction: Horizontal
- Sorting: High to low
- Enable legend and show API names
Panel 3: API Processing Times Detail
PromQL Queries
- A (Request Pipeline Duration):
sum(rate(apinizer_api_traffic_request_pipeline_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_request_pipeline_time_seconds_count[5m])) * 1000 - B (Routing Duration):
sum(rate(apinizer_api_traffic_routing_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_routing_time_seconds_count[5m])) * 1000 - C (Response Pipeline Duration):
sum(rate(apinizer_api_traffic_response_pipeline_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_response_pipeline_time_seconds_count[5m])) * 1000
Visualization: Timeseries
Panel Settings:
- Use "ms" (milliseconds) as Y-axis unit
- Use different colors and styles for each query
- Enable legend
Panel 4: Average Request / Response Size
PromQL Queries
- A (Average Request Size):
sum(rate(apinizer_api_traffic_request_size_bytes_sum[5m])) / sum(rate(apinizer_api_traffic_request_size_bytes_count[5m])) - B (Average Response Size):
sum(rate(apinizer_api_traffic_response_size_bytes_sum[5m])) / sum(rate(apinizer_api_traffic_response_size_bytes_count[5m]))
Visualization: Timeseries
Panel Settings:
- Use "bytes" or "decbytes" as Y-axis unit
- Use different colors for each query
- Enable legend
Panel 5: Pod CPU Usage
PromQL Queries
- A (Pod CPU Usage):
sum(system_cpu_usage{pod=~".*"}) by (pod) * 100
Visualization: Gauge
Panel Settings:
- Set thresholds (e.g., Green: 0-70%, Yellow: 70-90%, Red: 90-100%)
- Min: 0, Max: 100
- Use "%" as Y-axis unit
- Show pod names in legend
Dashboard Creation Tips
Organize panels in logical groups. API traffic metrics can be at the top, system metrics at the bottom.
Use a consistent color scheme. Use green for successful operations, red for errors, yellow for warnings.
Set the default time range for the dashboard. Usually the last 1 hour or last 24 hours is useful.
Set the automatic refresh time of the dashboard. 30 seconds is suitable for high-traffic systems, 1-5 minutes for low-traffic systems.
These panel examples are sufficient to create a basic dashboard. You can add additional panels or customize existing panels according to your needs.