メインコンテンツまでスキップ
非公開のページ
このページは非公開です。 検索対象外となり、このページのリンクに直接アクセスできるユーザーのみに公開されます。

Extendアプリのカスタムメトリクス

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

Extendアプリのカスタムメトリクスは、Extendアプリが公開するデフォルトメトリクス以外の追加メトリクスです。

この記事では、Extend Service Extensionアプリテンプレートを例として、Extendアプリにカスタムメトリクスを追加するプロセスをガイドします。ただし、ここで説明する手順はすべてのタイプのExtendアプリに適用されます。

前提条件

このウォークスルーに従う前に、Extend Service Extensionアプリのセットアップ方法を理解しておく必要があります。

アプリテンプレートのクローン

git clone https://github.com/AccelByte/extend-service-extension-csharp

カスタムメトリクスの追加

この例では、GetGuildProgress関数が呼び出された回数を追跡するカウンターメトリクスを追加します。

  1. メトリクスプロバイダークラスを作成して新しいメトリクスを定義します。Classesディレクトリまたは他のディレクトリに保存します。

    using System;
    using Prometheus;

    namespace AccelByte.Extend.ServiceExtension.Server
    {
    public class GetGuildCountMetric
    {
    private Counter _Counter;

    public GetGuildCountMetric()
    {
    _Counter = Metrics.CreateCounter(
    "ab_count_get_guild_progress",
    "Count number of GetGuildProgress called", labelNames: new[] { "method" });
    }

    public void Increment(string method)
    {
    _Counter.WithLabels(method).Inc();
    }
    }
    }
  2. Program.csファイル内のサービスプロバイダーに新しいメトリクスを登録します。grpcサービスを登録する前に以下のコードを配置します。

    ...

    builder.Services
    .AddSingleton(new GetGuildCountMetric());

    ...
  3. Services/MyService.csのgrpcサービスコンストラクタに新しいメトリクスを追加します。

    ...

    public class MyService : Service.ServiceBase
    {
    ...

    private readonly GetGuildCountMetric _GetGuildCountMetric;

    ...

    public MyService(
    ILogger<MyService> logger,
    IAccelByteServiceProvider abProvider,
    Tracer tracer,
    GetGuildCountMetric getGuildCountMetric)
    {
    ...

    _GetGuildCountMetric = getGuildCountMetric;
    }

    ...
    }
  4. GetGuildProgress関数内で、関数が呼び出されるたびにメトリクスカウンターをインクリメントします。

    _GetGuildCountMetric.Increment("GET", context.Method);

Grafana Cloudでメトリクスを確認する

  1. Admin PortalのExtendアプリ詳細ページにあるOpen Grafana CloudボタンをクリックしてGrafana Cloudにアクセスします。

    Open Grafana Cloudボタン

  2. Grafana CloudのExploreメニューをクリックします。

    Grafana Cloud Exploreメニュー

  3. メトリクスデータを読み込むデータソースを選択します。

    Admin Portalのアカウント権限に応じて、2つのPrometheusデータソースから選択できます。すべてのネームスペースにアクセスできる場合(スーパー管理者)、metricsデータソース(クロスネームスペースデータ)を選択できます。特定のネームスペースのみにアクセスできる場合は、prom-<namespace>.*データソース(ネームスペースごとのデータ)のみを選択できます。

    Explore metrics cross-namespace
    クロスネームスペースデータ
    Explore metrics per-namespace
    ネームスペースごとのデータ
  4. 必要に応じて複数のクエリを追加または削除します。ソースが選択されたら、Add queryボタンをクリックします。さらに、Query historyボタンをクリックしてクエリ履歴を表示できます。

    クエリの追加または削除

  5. カスタムメトリクスを選択するには、Select metricドロップダウンを使用してカスタムメトリクスを検索します。また、Operationsボタンをクリックして特定の操作を適用することもできます。

    カスタムメトリクスの選択

    複雑なクエリがある場合は、Codeタブをクリックして高度な計算にPrometheusクエリを使用します。

    複雑なメトリクスクエリ

    以下の画像の手順に従ってください。まず、ソースを選択します(1)。次に、クエリの時間枠を選択します(2)。次に、MetricドロップダウンボックスとLabelフィルターから値を選択します(3)。オプションで、メトリクスに特定の操作を適用します(4)。最後に、Run queryボタンをクリックしてメトリクスを表示します。

    複雑なメトリクスクエリの詳細

重要な注意事項

  1. シリーズは、メトリクス名とラベルのキーと値のペアのセットの一意の組み合わせとして定義されます。各固有のメトリクス名とそれに対応するラベルのキーと値のペアは、個別のシリーズとして扱われます。 例:

    ab_count_get_guild_progress{method="GET"} 1 -> series_count=1
    ab_count_get_guild_progress{method="GET"} 5 -> series_count=1
    ab_count_get_guild_progress{method="POST"} 5 -> series_count=2
    ab_sum_get_guild_progress{method="GET", service="guild"} 1 -> series_count=3
  2. カスタムメトリクスは、環境ごとに最大1,000のアクティブシリーズに制限されています。この制限に達すると、新しいシリーズをプッシュできなくなります。

    a. メトリクスは、一貫してスクレイプされ、Grafana Cloudによって受信される場合、アクティブシリーズと見なされます。

    b. メトリクスは、20分間スクレイプされないか、Grafana Cloudによって受信されない場合、非アクティブシリーズと見なされます。

  3. 現在、メトリクスを表示するカスタムダッシュボードを作成することはできません。

  4. カスタムメトリクスを含むExtendアプリメトリクスは、ポート8080の/metricsエンドポイントで公開されます。この設定は、Extendアプリテンプレートを使用してExtendアプリを作成する際にデフォルトで設定されます。

  5. 以下の表は、カスタムメトリクスで使用できない予約済みラベルを示しています。これらのいずれかが使用された場合、事前定義された値に置き換えられます。

    ラベルキー説明
    environment_name${env_name}環境識別子名
    productextend製品識別子名: extend
    scenario${extend_app_type}Extendアプリタイプ: function-overrideevent-handler、またはservice-extension
    union_namespace${publisher_name}パブリッシャー名
    game_namespace${game_namespace}Extendアプリネームスペース
    app_name${app_name}Extendアプリ名
    jobmetric-services/extend-metrics事前定義されたジョブ名
    instanceextend-metric-instance事前定義されたインスタンス値
ヒント

カスタムメトリクスに一意のプレフィックスを追加して、簡単に認識し、デフォルトメトリクスと区別できるようにします。例えば、ab_count_get_guild_progressでは、ab_が一意の識別子プレフィックスとして機能します。