> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Example Grafana Dashboards

> Provides example dashboard panel configurations you can use on Grafana to visualize Apinizer Gateway metrics. Includes ready PromQL queries and visualization suggestions for API traffic volume, processing times, cache performance, and system resource usage.

<Info>
  For Grafana Installation and Prometheus Integration as Data Source, you can check [our relevant documentation](/en/tutorials/how-to-guides/administrator-guides/grafana-prometheus-data-source).
</Info>

## 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

<Card title="Timeseries Visualization" icon="chart-line">
  Shows total, successful, and failed API requests as a time series.
</Card>

**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

<Card title="Bar Chart Visualization" icon="chart-bar">
  Shows the top 5 APIs with the highest traffic volume in the last 100 minutes.
</Card>

**PromQL Query:**

```promql theme={null}
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

<Card title="Timeseries Visualization" icon="clock">
  Shows request pipeline, routing, and response pipeline times separately.
</Card>

**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

<Card title="Timeseries Visualization" icon="database">
  Shows average sizes of request and response messages.
</Card>

**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

<Card title="Gauge Visualization" icon="microchip">
  Shows CPU usage percentage of each Gateway pod.
</Card>

**PromQL Query:**

```promql theme={null}
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

<CardGroup cols={2}>
  <Card title="Panel Layout" icon="th">
    Organize panels in logical groups. API traffic metrics can be at the top, system metrics at the bottom.
  </Card>

  <Card title="Color Scheme" icon="palette">
    Use a consistent color scheme. Use green for successful operations, red for errors, yellow for warnings.
  </Card>

  <Card title="Time Range" icon="clock">
    Set the default time range for the dashboard. Usually the last 1 hour or last 24 hours is useful.
  </Card>

  <Card title="Refresh Interval" icon="sync">
    Set the automatic refresh time of the dashboard. 30 seconds is suitable for high-traffic systems, 1-5 minutes for low-traffic systems.
  </Card>
</CardGroup>

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