# Metrics API

## Metrics API

Diarkis では、 metrics を取得するためのエンドポイントをデフォルトで用意してあります。

Prometheus に値を入れ、Grafana で可視化したり、JSON 形式で取得して、手元で軽く現在の指標を確認する用途を想定しています。

2秒に1度更新されます。

デフォルトで定義してあるメトリクスの他に、カスタムのメトリクスを追加定義して出力することも可能です。

## Endpoint

* $HTTP\_ENDPOINT/metrics/prometheus/v/3: Prometheus(<https://prometheus.io/>) の scraping endpoint を提供しています。
  * `curl $HTTP_ENDPOINT/metrics/prometheus/v/3`
* $HTTP\_ENDPOINT/metrics/json: 同一内容で json 形式のものを返します。
  * `curl $HTTP_ENDPOINT/metrics/json`

## Diarkis でデフォルトで定義されているメトリクス

| 指標名                                                | 説明                                                |
| -------------------------------------------------- | ------------------------------------------------- |
| Users\_UDP\_node                                   | UDP サーバーに接続しているユーザー数                              |
| Users\_TCP\_node                                   | TCP サーバーに接続しているユーザー数                              |
| UDP\_Packets\_In\_UDP\_node                        | UDP サーバーの受信した UDP パケット数                           |
| TCP\_Packets\_In\_TCP\_node                        | TCP サーバーの受信した TCP パケット数                           |
| TCP\_Packets\_Out\_TCP\_node                       | TCP サーバーの送信した TCP パケット数                           |
| UDP\_Packets\_Out\_UDP\_node                       | UDP サーバーの送信した UDP パケット数                           |
| UDP\_Packets\_In\_UDP\_node                        | UDP サーバーの受信した UDP パケット数                           |
| Commands\_In\_UDP\_node                            | UDP サーバーの受信したコマンドの数（一つのパケットに複数コマンドが含まれる可能性があります。) |
| Commands\_In\_TCP\_node                            | TCP サーバーの受信したコマンドの数（一つのパケットに複数コマンドが含まれる可能性があります。) |
| Commands\_Out\_UDP\_node                           | UDP サーバーがクライアントに向けて、送ったコマンドの数                     |
| (一つのパケットに複数コマンドが含まれる可能性があります。)                     |                                                   |
| Commands\_Out\_TCP\_node                           | TCP サーバー がクライアントに向けて、送ったコマンドの数                    |
| (一つのパケットに複数コマンドが含まれる可能性があります。)                     |                                                   |
| RUDP\_Retries\_UDP\_node                           | UDP サーバーでの RUDP リトライの数                            |
| RUDP\_Split\_In\_UDP\_node                         | UDP サーバーで MTU を超えたパケットの受信数                        |
| RUDP\_Split\_Out\_UDP\_node                        | UDP サーバーで MTU を超えたパケットの送信数                        |
| Mesh\_Packets\_In\_HTTP\_node                      | HTTP サーバーの内部ネットワークでのパケット受信数                       |
| Mesh\_Packets\_In\_UDP\_node                       | UDP サーバーの内部ネットワークでのパケット受信数                        |
| Mesh\_Packets\_In\_TCP\_node                       | TCP サーバーの内部ネットワークでのパケット受信数                        |
| Mesh\_Packets\_Out\_HTTP\_node                     | HTTP サーバーが内部ネットワークで送ったパケット数                       |
| Mesh\_Packets\_Out\_UDP\_node                      | UDP サーバーが内部ネットワークで送ったパケット数                        |
| Mesh\_Packets\_Out\_TCP\_node                      | TCP サーバーが内部ネットワークで送ったパケット数                        |
| Mesh\_Retry\_UDP\_node                             | UDP サーバーが内部ネットワークでリトライを行った数                       |
| Mesh\_Retry\_TCP\_node                             | TCP サーバーが内部ネットワークでリトライを行った数                       |
| Rooms\_UDP\_node                                   | UDP サーバーにある room の数                               |
| Rooms\_TCP\_node                                   | TCP サーバーにある room の数                               |
| Groups\_UDP\_node                                  | UDP サーバーにある group の数                              |
| Groups\_TCP\_node                                  | TCP サーバーにある group の数                              |
| MatchMaker\_Search\_HTTP\_node                     | HTTP サーバーで行った MatchMaker search の数                |
| MatchMaker\_Empty\_HTTP\_node                      | HTTP サーバーで行った空 MatchMaker search の数               |
| MatchMaker\_Ticket\_UDP\_node                      | UDP サーバーにある MatchMaker ticket の数                  |
| MatchMaker\_Ticket\_TCP\_node                      | TCP サーバーにある MatchMaker ticket の数                  |
| MatchMaker\_Ticket\_Search\_UDP\_node              | UDP サーバーで発行した MatchMaker search の数                |
| MatchMaker\_Ticket\_Search\_TCP\_node              | TCP サーバーで発行したMatchMaker search の数                 |
| MatchMaker\_Ticket\_Add\_UDP\_node                 | UDP サーバーで発行した MatchMaker ticket 由来の search の数     |
| MatchMaker\_Ticket\_Add\_TCP\_node                 | TCP サーバーで発行した MatchMaker ticket 由来の search の数     |
| MatchMaker\_Complete\_UDP\_node                    | UDP サーバーで完了した MatchMaker ticket の数                |
| MatchMaker\_Complete\_TCP\_node                    | UDP サーバーで完了した MatchMaker ticket の数                |
| MatchMaker\_Ticket\_Complete\_Time\_Avg\_UDP\_node | UDP サーバーで MatchMaker ticket 完了までかかった平均時間          |
| MatchMaker\_Ticket\_Complete\_Time\_Avg\_TCP\_node | TCP サーバーで MatchMaker 完了までかかった平均時間                 |
| MatchMaker\_Ticket\_Complete\_Time\_Min\_UDP\_node | UDP サーバーで MatchMaker ticket 完了までかかった最小時間          |
| MatchMaker\_Ticket\_Complete\_Time\_Min\_TCP\_node | TCP サーバーで MatchMaker ticket 完了までかかった最小時間          |
| MatchMaker\_Ticket\_Complete\_Time\_Max\_UDP\_node | UDP サーバーで MatchMaker ticket 完了までかかった最大時間          |
| MatchMaker\_Ticket\_Complete\_Time\_Max\_TCP\_node | TCP サーバーで MatchMaker ticket 完了までかかった最大時間          |
| P2P\_Success\_UDP\_node                            | P2P が成功した回数                                       |
| P2P\_Attempt\_UDP\_node                            | P2P を試みた回数                                        |
| Field\_Grids\_UDP\_node                            | UDP サーバーで持っているField grid 数                        |
| Field\_Grids\_TCP\_node                            | TCP サーバーで持っている Field grid 数                       |

## Prometheus 設定方法

\#TODO

## Custom Metrics 設定方法


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.diarkis.io/diarkis-server/metrics-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
