Ana içeriğe geç

Example Dashboards on Grafana for Apinizer Gateway

Info

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 1: Total API Request Volume by Request Type

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 2: APIs with Highest Traffic Volume

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 3: API Processing Times Detail

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 4: Average Request / Response Size

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 5: Pod CPU Usage

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​

Panel Layout

Organize panels in logical groups. API traffic metrics can be at the top, system metrics at the bottom.

Color Scheme

Use a consistent color scheme. Use green for successful operations, red for errors, yellow for warnings.

Time Range

Set the default time range for the dashboard. Usually the last 1 hour or last 24 hours is useful.

Refresh Interval

Set the automatic refresh time of the dashboard. 30 seconds is suitable for high-traffic systems, 1-5 minutes for low-traffic systems.

Note

These panel examples are sufficient to create a basic dashboard. You can add additional panels or customize existing panels according to your needs.