モニタOpenGeneratorとSignozであなたのゴランアプリケーション


OpenTelemMetricは、あなたのソフトウェアのパフォーマンスと行動を直接測定して、このデータを観測可能性プラットホームに送るAPIのセットを提供します.どのようにGOのアプリケーションのOpenTelemrationで始まることを学ぶし、Signozとそのデータを可視化してみましょう.

OpentElementalは、ベンダーの不可知論者のライブラリです.この記事では、どのようにあなたがOpentElementerを使用して行くアプリケーションを計ることができるとSignozを介して報告されたデータを得る-オープンソースAPMと観測可能性ツールを探ることができます.
手順は、OpentElementのためのGOアプリケーションを開始する
  • インストール
  • サンプルアプリケーションのインストール
  • OpenTelemrationとデータをSignozに送る計装

  • インストール
    Dockerがインストールされているなら、ターミナルで3つのコマンドを使ってSIGNOZを使い始めることができます.他の展開オプションについてはSigNoz documentation .
    git clone https://github.com/SigNoz/signoz.git
    cd signoz/deploy/
    ./install.sh
    
    あなたは、ストレージオプションとしてClickhouseまたはKafka +ドルイドの間で選択するオプションがあります.ClickHouseデータベースを使用したSignozを試してみると1.5 GBのメモリがなくなり、このチュートリアルではそのオプションを使用します.
    SIGNOZをインストールしたら、UIにアクセスできます.http://localhost:3000
    ダッシュボードに表示されるアプリケーション一覧は、Signozインストールパッケージに付属しているホットR . O . Dと呼ばれるサンプルアプリケーションからです.
    Signozダッシュボード

    サンプルアプリケーションのインストール
    どのようにOpentElemental楽器を使用して行くことができるアプリケーションを参照してください、それはどのようにサンプルの書店アプリで動作するかを見てみましょうGitHub repo ).
    これは、書籍のデータを提供し、クルーズ操作を実行する残りのAPIとシンプルな書店アプリです.アプリはRESTful APIを構築するGINフレームワークを使用します.GINは、ルーティング、ミドルウェアのサポートとレンダリングのような一般的に使用される機能のセットを含むGolangで書かれた高性能HTTP Webフレームワークです.
    OpenTelemTreeは、一般的なGOパッケージとユースケースをサポートするための特定の機器パッケージを持っています.例えば、このアプリは、要求ルーティングのためのGINフレームワークを使用します.OpenTelemMetricはあなたのアプリでインポートするために必要なGINのフレームワークを計器にインスタンチメントパッケージを提供します.サポートされているGolangパッケージの完全なリストを見つけることができますhere .
    必要条件
    あなたのマシンにインストールされているゴランを実行しているか確認します$ go version 端末で.インストールされていない場合は、ダウンロードすることができますhere .
    サンプルGoアプリケーションをインストールする手順
  • アプリケーションのリポジトリ
    ターミナルから、次のコマンドを使用して、サンプルのGoアプリケーションのGithubリポジトリをクローンします.
  •    git clone https://github.com/SigNoz/sample-golang-app.git
    
  • サンプルのGolangアプリ&チェックは、アプリケーションが動作している場合に更新パス
    サンプルアプリケーションディレクトリへのターミナルパスを更新し、アプリケーションが動作しているかどうかチェックします.
  •    cd sample-golang-app
       go run main.go
    
    あなたのアプリケーションを実行するための利用可能なポートがあることを確認します.デフォルトでは、go appがポート8080で動作しようとすると、SIGNOZがクエリサービスのポート8080を使用しているとエラーが発生する可能性があります.お使いのMac端末では、次のコマンドを使用してアプリケーションのリスニングポートを設定できます
       export PORT = 8081
    
    /ブックストアアプリのブックエンドポイント
    アプリケーションが動作していることを確認したら、Mac端末で「Ctrl + C」キーを押してサーバーを終了します.

    OpenTelemrationとデータをSignozに送る計装
    ファイルmain.go インストゥルメントをサンプルアプリケーションの順序ですべての必要なOpenTelemrationパッケージをインポートする手順があります.このアプリのために、我々は次のOpenTelemrationパッケージをインポートします.
    import (
        "go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin"
        "go.opentelemetry.io/otel"
        "go.opentelemetry.io/otel/exporters/otlp"
        "go.opentelemetry.io/otel/exporters/otlp/otlpgrpc"
        "go.opentelemetry.io/otel/label"
    
        "go.opentelemetry.io/otel/sdk/resource"
        sdktrace "go.opentelemetry.io/otel/sdk/trace"
    )
    
    Signozにデータを送信するために必要な環境変数をGoアプリを実行する必要があります.次のコマンドを使用して、アプリケーションをSignozに送信するように設定します.
    SERVICE_NAME=goApp INSECURE_MODE=true OTEL_METRICS_EXPORTER=none OTEL_EXPORTER_OTLP_ENDPOINT=<IP of SigNoz backend>:4317 go run main.go
    
    Ip of SigNoz この場合、localhostに置き換えられます.したがって、最終コマンドは次のようになります.
    SERVICE_NAME=goApp INSECURE_MODE=true OTEL_METRICS_EXPORTER=none OTEL_EXPORTER_OTLP_ENDPOINT=localhost:4317 go run main.go
    
    そして、おめでとう!あなたはサンプルgolangアプリを計装している.ヒットザラ/books チェックインで書店アプリのhttp://localhost:8081/books . ロードを生成するために、何度もそれをリフレッシュして、Signozダッシュボードにデータのために1 - 2 minsを待ちます.
    SIGNZダッシュボードにアクセスできます.http://localhost:3000 あなたのパフォーマンス指標のアプリを監視するために.
    サンプルゴロアプリは、アプリケーションのリストに表示されます
    あなた自身のゴランアプリケーションを楽器にしたい場合は、それについての我々のことができますdocumentation .

    メトリックとアプリケーションのトレース
    Signozは、簡単にOpenTelemration計器を介してキャプチャメトリックとトレースを可視化することができます.
    Signozはボックスの赤メトリックチャートと可視化の付属しています.赤メトリックは次のようになります.
  • 要求の割合
  • リクエストのエラー率
  • 要求による期間
  • アプリケーションのレイテンシー、リクエストあたりのリクエスト、エラーパーセンテージ、トップエンドポイントを参照してください
    その後、そのタイムスタンプの周りのトレースにドリルダウンするようにレイテンシが高い特定のタイムスタンプを選択することができます.
    特定のtimestamp あなたは、遅延を引き起こしている問題を正確に特定するために、Flamamegraphを使うことができます.
    各スパンによってとられる正確な期間を示しているフレームワーク

    結論
    OpentElementは非常にアプリケーションに行くとテレメトリデータを生成する便利になります.次に、SignozのようなオープンソースのAPMツールを使用して、アプリケーションのパフォーマンスを分析することができます.Signozは完全なスタックの可観測性ツールを提供するので、あなたの監視ニーズのために複数のツールを使用する必要はありません.
    あなたはGigthubレポを訪問してSignozを試してみることができます👇

    Signozを試している間はどんな問題にも直面しているなら、次のように書いてください.[email protected]
    あなたがSignozについてもっと読みたいならば👇
    Monitor your Spring Boot application with OpenTelemetry and SigNoz