サービスのプライマリオペレーション

APM サービス

APM サービスは、エラー、スループット、レイテンシーのトレースメトリクスを計算します。メトリクスは 1 つのスパン名に一致する複数のリソースを基に計算され、プライマリオペレーションとみなされます。サービスメトリクスは、製品全体で、デフォルトのサービス詳細画面としてサービスカタログとサービスマップで使用されています。

: トレースメトリクスは、trace.* ネームスペースに基づき照会できます。

プライマリオペレーション

定義

サービスのプライマリオペレーション名により、サービスが UI でどのように表示されるかが決まります。Datadog のバックエンドは、リクエストスループットに基づいて、サービスのエントリーポイントとみなされるオペレーション名を自動的に選択します。

たとえば、web-store サービスは、リソースとしてインスツルメントされた複数のエンドポイントを持つことができます。これらのリソースでは、サービスのエントリーポイントが一致しているため、同じプライマリオペレーションを共有できます。例を挙げると、リソース /user/home/user/new は共に、同じプライマリオペレーション web.request を持ちます。他の言語では、サービスのプライマリオペレーションは以下のような形式をとります。

サービスの種類プライマリオペレーション
webservlet.requestflask.requestweb.request
dbpostgres.querydb.query
カスタムインスツルメンテーションtrace.annotationmethod.call

構成

1 つのサービスに複数のプライマリオペレーションが定義されている場合は、最も高いリクエストスループットによってオペレーションが自動的に選択され、サービスのエントリーポイントとなります。管理者ユーザーはこれを手動で設定できます。

  1. APM 設定ページに移動します。
  2. Primary Operation Name タブを選択します。
  3. 手動設定を行うサービスの編集アイコンをクリックします。
  4. Set Manually タブをクリックします。
  5. サービスのエントリーポイントとして設定するオペレーションを選択します。
  6. Save をクリックします。
APM の保存

追加スパン名の統計を表示する

すべてのトレースがインスツルメンテーション以外でも Datadog に正しく送信されているか確認するには、追加スパン名によりリソースを表示できます。追加スパン名はセカンダリオペレーションとしてドロップダウンメニューで表示されます。ただし、追加スパン名はサービスレベルの統計の計算には使用されません。

手動インスツルメンテーション

カスタムスパンを作成する際は、リソースが確実に同じプライマリオペレーション (例: web.request) で分類されるよう、スパン名を静的に設定します。スパン名が動的に設定されている場合は、リソースとして設定します (たとえば /user/profile)。

詳細は、プログラミング言語のカスタムインスツルメンテーションをご参照ください。

OpenTracing

Datadog を使用している場合、OpenTracing オペレーション名はリソース、OpenTracing “component” タグは Datadog のスパン名となります。たとえば、リソースが “/user/profile”、スパン名が “http.request” のスパンを OpenTracing 用語で定義するには、次のようになります。

using OpenTracing;
using OpenTracing.Util;

using (var scope = GlobalTracer.Instance.BuildSpan("http.request").StartActive(finishSpanOnDispose: true))
{
    scope.Span.SetTag("resource.name", "/user/profile");
    // トレースされるコード
}

詳細は、.NET および OpenTracing のセットアップをご参照ください。

その他の参考資料

PREVIEWING: brian.lee/service_health_ga