マイクロサービスの定義

このドキュメントでは、カスタム サービスと、GKE や Cloud Run などの一部のリソース用のサービスを作成する方法について説明します。

Cloud Monitoring では、サービスを SLO とアラート ポリシーに関連付けることができます。Monitoring サービスを作成する可能性のあるリソースもサービスという場合もありますが(GKE サービスCloud Run サービスなど)、意味は異なります。

Monitoring は、GKE ベースと Cloud Run ベースのサービスをモニタリング候補として認識できます。サービスを作成するには、Monitoring サービスとして使用する候補を指定します。Monitoring により、必要なインフラストラクチャが作成されます。

任意のカスタム サービスを定義することもできます。

サービスを特定または作成する

候補のサービスを特定する場合、またはカスタム サービスを作成する場合は、[サービスを定義] ペインに移動します。

  1. Google Cloud コンソールの [SLO] ページに移動します。

    [SLO] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

  2. [サービスの概要] ページで、次のいずれかを行います。

    • [ サービスを定義] をクリックします。

    • [現在のステータス] ペインで、[サービスを定義] リンクをクリックします。

      [サービスを定義] を使用して、カスタム サービスまたはユーザー指定のサービスを作成します。

[サービスを定義] ペインで、次の操作を行うことができます。

  • 候補となるサービスのリストからサービスを作成します。
  • カスタム サービスを定義します。

以降のセクションでは、これらのオプションについて説明します。

サービスを作成する

Cloud Monitoring は、次のタイプのサービスを識別できます。

  • Cloud Service Mesh サービス
  • Istio on GKE サービス
  • App Engine サービス
  • GKE Namespace
  • GKE サービス
  • GKE ワークロード
  • Cloud Run サービス

こうした潜在的なサービスが多数存在する可能性があるため、Monitoring ではそれらが SLO を持つサービスとして扱われることは想定していません。Monitoring がサービスとして扱う可能性のあるサービスを指定するには、Google Cloud コンソールまたは API を使用します。

Google Cloud コンソールでサービスを作成する

Google Cloud コンソールを使用してサービスを作成するには、次の操作を行います。

  1. [サービスの概要] ページで、[サービスを定義] をクリックします。

  2. [サービスの候補] を選択します。

    候補となるサービスが [サービスの候補] タブに表示されます。

    リストに多数の候補が表示されている場合があります。次のようにリストをフィルタリングできます。

    1. [表をフィルタリング] をクリックします。フィルタ オプションのリストが表示されます。

    2. フィルタリストのいずれかのオプションを選択します。選択したオプションがフィルタバーに表示されます。

    3. フィルタバーのオプションの隣をクリックして入力を開始します。一致する値がリストに掲載されます。リストから値を選択します。

  3. 潜在的なサービスのリストから候補となるサービスをクリックします。

    エントリをクリックすると、以下のフィールドが自動的に入力されます。

    • 表示名は、リスト内のエントリの名前に設定されます。この値は変更可能です。

    • 新しいサービスの構成用の JSON コードブロックが候補から生成されます。この値は変更しないでください。

  4. [送信] をクリックします。サービスが作成されると、[成功] 通知が表示されます。

API でカスタム サービスを作成する

Cloud Monitoring API の一部である SLO API を使用してサービスを作成することもできます。

プログラムでサービスを作成するには、次のいずれかの構成オブジェクトを services.create メソッドに送信します。

GKE 名前空間

GkeNamespace 構造体を使用します。次に例を示します。

{
  "displayName": "test-kube-namespace",
  "gkeNamespace": {
    "location": "us-central1-c",
    "clusterName": "cluster-1",
    "namespaceName": "test-kube-namespace"
  }
}

GKE サービス

GkeService 構造体を使用します。次に例を示します。

{
  "displayName": "test-kube-service",
  "gkeService": {
    "location": "us-central1-c",
    "clusterName": "cluster-1",
    "namespaceName": "kube-system",
    "serviceName": "test-kube-service"
  }
}

GKE ワークロード

GkeWorkload 構造体を使用します。次に例を示します。

{
  "displayName": "frontend-a",
  "gkeWorkload": {
    "location": "us-central1-b",
    "clusterName": "cluster-2",
    "namespaceName": "default",
    "topLevelControllerType": "Deployment",
    "topLevelControllerName": "frontend-a"
  }
}

Cloud Run

CloudRun 構造体を使用します。次に例を示します。

{
  "displayName": "test-cloudrun-service",
  "cloudRun": {
    "serviceName": "test-cloudrun-service",
    "location": "us-central1"
  }
}

Cloud Service Mesh

MeshIstio 構造体を使用します。次に例を示します。

{
  "displayName": "test-mesh-istio-service",
  "meshIstio": {
    "meshUid": "mesh-identifier"
    "serviceName": "test-mesh-istio-service",
    "serviceNamespace": "default"
  }
}

Istio on GKE

clusterIstio 構造体を使用します。次に例を示します。

{
  "displayName": "test-cluster-istio-service",
  "clusterIstio": {
    "serviceName": "test-cloud-service",
    "clusterName": "cluster-2",
    "serviceNamespace": "default",
    "location": "us-central1"
  }
}

App Engine

AppEngine 構造体を使用します。次に例を示します。

{
  "displayName": "test-mesh-istio-service",
  "appEngine": {
    ""moduleId": "id-of-the-service"
  }
}

サービスをプログラムで管理する方法の詳細については、次のドキュメントをご覧ください。

カスタム サービスを作成する

ニーズに合ったサービスがない場合は、カスタム サービスを作成します。カスタム サービスを使用すると、ご使用の環境に有用な方法で SLO をグループ化することも、既存のマイクロサービスに対応しないビジネス指標に SLO を作成することもできます。

Google Cloud コンソールを使用してカスタム サービスを作成する

Google Cloud コンソールでカスタム サービスを定義する手順は次のとおりです。

  1. [サービスの概要] ページで [サービスを定義] をクリックすると、[サービスを定義] ペインが表示されます。

  2. [カスタム サービス] を選択します。

    [カスタム サービス] タブを使用して、任意のサービスを定義します。

  3. カスタム サービスの表示名を入力します。

  4. [送信] をクリックします。サービスが作成されると、[成功] 通知が表示されます。

API を使用してカスタム サービスを作成する

SLO API を使用してカスタム サービスを定義するには、次のような Custom 構成オブジェクトを services.create メソッドに送信します。

{
  "displayName": "hello-world-service",
  "custom": {}
}

プログラムでサービスを管理する方法については、API の操作をご覧ください。

次のステップ

新しいサービスを特定または作成したら、次の操作を行います。

  • 新しいサービスの SLO を作成します。このサービスを利用するには、新しいサービスに少なくとも 1 つの SLO を定義する必要があります。詳細については、SLO の作成をご覧ください。
  • 新しいサービスのダッシュボードに移動します。新しいサービスの場合、ダッシュボードは空になりますが、ダッシュボードから SLO を定義できます。詳細については、マイクロサービス ダッシュボードの使用をご覧ください。