OpenTelemrationによる追跡



トレースは、アプリケーション内の特定のボトルネックに大きな洞察力を与える.有効にするために必要な手順に従いますOpenTelemetry Google雲ランでFastifyアプリケーション内で.私はインスピレーションを得たNearform ウェビナーDaily.Dev .
https://www.youtube.com/watch?v=UKaJDmwIIpE
デフォルトでは、クラウドランは既に実行中のインスタンスを入力するリクエストで有効になっています.それで、あなたが行くならばtraces コンソールでは、アプリケーションのHTTPエンドポイントごとにトレースを見る必要があります.次の例がわかります.

今、我々は我々のアプリケーションの追加の計装を追加を開始することができます.Googleによって提案された複数のライブラリがあります.

  • OpenTelemetry : recommended by Google

  • OpenCensus : 唯一のアルファサポートとnodejsサポートも
  • Google Client library
  • オプトメントメトリー


    のウェブサイトで説明OpenTelemetry

    OpenTelemetry is a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior.


    これはまだベータ版ですが、一般的な可用性はすぐに到着する必要があります.

    インストール


    あなたのアプリケーションの開始時にすべてのOpenTemplateパッケージを初期化するようにします.この例では、HTTP、typeRM、postgressのインストルメンテーションを次のインストゥルメントパッケージで追加します.
  • @opentelemetry/instrumentation-http
  • @opentelemetry-instrumentation-typeorm
  • @opentelemetry/instrumentation-pg
  • import opentelemetry, { DiagConsoleLogger, DiagLogLevel } from '@opentelemetry/api';
    import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
    import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
    import { TraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter';
    import { PgInstrumentation } from '@opentelemetry/instrumentation-pg';
    import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
    import { registerInstrumentations } from '@opentelemetry/instrumentation';
    import { TypeormInstrumentation } from 'opentelemetry-instrumentation-typeorm';

    export function tracing() {
    // Enable OpenTelemetry exporters to export traces to Google Cloud Trace.
    // Exporters use Application Default Credentials (ADCs) to authenticate.
    // See https://developers.google.com/identity/protocols/application-default-credentials
    // for more details.
    const provider = new NodeTracerProvider();

    // Initialize the exporter. When your application is running on Google Cloud,
    // you don't need to provide auth credentials or a project id.
    const exporter = new TraceExporter();

    // Configure the span processor to send spans to the exporter
    provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
    provider.register();
    opentelemetry.trace.setGlobalTracerProvider(provider);
    registerInstrumentations({
    instrumentations: [
    new HttpInstrumentation(),
    new PgInstrumentation(),
    new TypeormInstrumentation({
    // see under for available configuration
    }),
    ],
    });
    return { provider };
    }
    The Google Cloud trace exporter 自動的に、クラウドサービスサービスアカウントを使用しますので、このサービスアカウントがトレースAPIを利用するためのアクセスを確認します.これを設定したり検証したりできますIAM Console .
    これをアプリケーションに追加し、クラウドランで展開すると、より詳細なトレースを見ることができます.トレースIDは、常にあなたの要求の応答ヘッダーにあります.

    毎日の分析レポート


    あなたがこの追跡データでGoogle Cloudを供給するならば、あなたはより詳細な洞察も得ます.私たちが特定のAPI呼び出しに重大な影響を与えた例は、Google雲によって自動的に気づきました.

    概要


    簡単に実装し、時間をかけてより多くの洞察を与えることができます.Googleのクラウドトレースダッシュボードは非常にシンプルで使いやすいので、エントリの障壁は比較的低いです.