OpenTelemetryの活用法や、アプリケーションとサービスで収集できるすべてのテレメトリを統合する方法を学びたいと思ったことはありますか?実践的に学びたい場合は、OpenTelemetryとSplunk Observability Cloudを使うと便利です。以下のデモとガイドを活用すると、OpenTelemetryの自動インストルメンテーションとOpenTelemetry Collectorについて自分のペースですばやく学べます。
図1-1. Splunk Observability Cloudの統合環境で利用できるHipster Shop Guided Example
OpenTelemetryを使ってアプリケーションやサービスを自動インストルメントするのは簡単です。アプリケーション本体、設定ファイル、またはビルドパイプラインに少し変更を加えるだけです。パイプラインの場合は、サポートライブラリを取り込み、環境変数を挿入するようにプロセスを変更します。これにより、Jenkinsパイプラインを監視することもできます。これは、ソフトウェア開発ライフサイクルの可視化と、カスタマーエクスペリエンスの低下防止に役立ちます。
既存のアプリケーションの自動インストルメンテーションも簡単です。Node.jsアプリケーションの場合、ローカルでOpenTelemetry Collectorが実行されていれば、npm起動スクリプトでsplunk-otel-jsライブラリを取り込んでインスタンス化するように変更するだけです。まずは、既存のアプリケーションを変更するか、空のExpress.jsプロジェクトから始めるとよいでしょう。空のプロジェクトを使用する場合は、package.jsonに自動インストルメンテーションのコードを追加するだけです。Splunk Observability Cloudにテレメトリを直接送信するCollectorを使用しない場合は、環境変数をいくつか追加する方法もあります。
図1-2. テレメトリをローカルのOpenTelemetry Collector経由でSplunk Observability Cloudに送信する設定の例
OpenTelemetryを使ってアプリケーションのインストルメンテーションと設定を行うと、Hipster Shopを実行するKubernetesクラスターからのメトリクスがCollector経由でSplunk Observability Cloudに送信されます。さっそく確認してみましょう。ログイン後、[APM Overview] (APMの概要)内をクリックすると、テレメトリ、インサイト、インテグレーションがすべて連携しているのがわかります。
図1-3. 新しいトライアルライセンスを有効にしたSplunk Observability Cloudの画面
サービスマップでは、サービスとアプリケーションの分散トレースを調査できます。デモ用マイクロサービスのWebサイトで操作を行うと、サービスマップに表示されるトレースが広がります。状態を観察するだけであれば、Hipster Shopデモとともに提供されるトラフィック生成ツールを使って負荷生成を自動化することもできます。
図1-4. Splunk Observability Cloud -> APM -> Explore:OpenTelemetry Collectorによるサービスマップ
Kubernetesでマイクロサービスデモやその他のサービスを実行している場合は、Splunk Observability Cloudのインフラ監視画面でインフラの状況を確認できます。下の画像は、Splunkが提供するHelmチャートとともに導入されるOpenTelemetry Collectorのクラスターマップの例です。
図1-5. Splunk Observability Cloud -> Infrastructure -> Kubernetes:OpenTelemetry Collectorによるクラスターマップ
Webアプリケーションでの実際のユーザーエクスペリエンスを確認したい場合は、Splunk Observability Cloudのリアルユーザー監視(RUM)セクションに移動します。RUMサービスダッシュボードには、LCP (最も大きいコンテンツが表示されるまでの時間)、CLS (レイアウトのずれの累積量)、FID (最初のユーザー操作に対する反応時間)、TTFB (最初の1バイトを送信するまでの時間)、JavaScript/ネットワークエラー数、バックエンド/リソースリクエストの処理時間など、主要なメトリクスが表示されます。また、Splunk Synthetic Monitoringでプロアクティブな監視を行えば、サポートチケットを受け取る前にカスタマーエクスペリエンスの低下を検出できます(注:Splunk Synthetic Monitoringは現時点でトライアル版には含まれません)。
以上のように、OpenTelemetryによるアプリケーションの自動インストルメンテーションと、ローカルOpenTelemetry Collectorの導入と設定は簡単に行うことができます。それが完了すれば、フロントエンドからバックエンドまでサービスとアプリケーションをプロアクティブに監視し、必要に応じてアラートを生成して、問題にすばやく対応できます。オブザーバビリティ、OpenTelemetry、Splunk Observability Cloudを組み合わせれば、DevOpsチーム、DevSecOpsチーム、運用チーム、経営幹部の連携を強化できます。
このブログでは以下のテクニックをご紹介しました。
SplunkとOpenTelemetryの自動インストルメンテーションでアプリケーションとサービスの監視を始めましょう。SplunkとOpenTelemetryの機能を活用すれば、継続的デリバリー、セキュリティ、バージョン/プロセス管理にオブザーバビリティを組み込んで、ソフトウェアデリバリーのパフォーマンスを向上させることができます。また、Splunk Real User Monitoringで問題にプロアクティブに対応することで、カスタマーエクスペリエンスの低下を防ぎ、顧客満足度を向上させることもできます。サービスとアプリケーションのインストルメンテーションを実現すれば、より的確な意思決定を行い、より多くの課題を探って解決策を見つけ出し、ビジネス価値の向上につなげることができるでしょう。Splunk Observability Cloud製品スイートの無料トライアル版で、ほぼリアルタイムでのインフラの健全性監視と本番環境のボトルネック検出をぜひご体験ください!
このブログはこちらの英語ブログの翻訳、加藤 教克によるレビューです。
このブログ記事はSplunkのソリューションイノベーションエンジニアであるAdam Schalockが執筆しました。また、協力いただいた同僚のJeremy Hicksに感謝申し上げます。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。