Example Grafana Dashboards
For Grafana Installation and Prometheus Integration as Data Source, you can check our relevant documentation.
Dashboard Panels
The panel examples below are configurations you can use in Grafana to visualize Apinizer Gateway metrics.
Panel 1: Total API Request Volume by Request Type
Shows total, successful, and failed API requests as a time series.
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 Type: 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 Query:
topk(5, sum by (api_name) (increase(apinizer_api_traffic_total_count_tagged_total[100m])))
Visualization Type: Bar gauge or Bar chart
Panel Settings:
- Direction: Horizontal
- Sorting: High to low
- Enable legend and show API names
Panel 3: API Processing Time Details
Shows request pipeline, routing, and response pipeline times separately.
PromQL Queries:
- A (Request Pipeline Time):
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 Time):
sum(rate(apinizer_api_traffic_routing_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_routing_time_seconds_count[5m])) * 1000 - C (Response Pipeline Time):
sum(rate(apinizer_api_traffic_response_pipeline_time_seconds_sum[5m])) / sum(rate(apinizer_api_traffic_response_pipeline_time_seconds_count[5m])) * 1000
Visualization Type: 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
Shows average sizes of request and response messages.
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 Type: Timeseries
Panel Settings:
- Use "bytes" or "decbytes" as Y-axis unit
- Use different colors for each query
- Enable legend
Panel 5: CPU Usage of Pods
Shows CPU usage percentage of each Gateway pod.
PromQL Query:
sum(system_cpu_usage{pod=~".*"}) by (pod) * 100
Visualization Type: 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.