モニタのPythonアプリケーションをOpenTementDirectoryとSignoz📊🐍


OpentElementalは、CNCFの下のベンダーagnostic計装ライブラリです.これは、あなたのPythonアプリケーションを測定するテレメトリデータを生成するために使用することができます.どのように動作し、どのようにSignozとそのデータを可視化する方法を学びましょう.

ミリ秒のコスト.
金融サービス産業研究所estimates ブローカーの電子取引プラットフォームが競争の後で5ミリ秒であるならば、それはミリセカンドあたりの収益で400万ドルを要するかもしれません.
金融サービス業界ではレイテンシーのコストが高すぎて、今日のほとんどのソフトウェアベースのビジネスについても同じです.半分は、彼らがアプリケーションのサービスを放棄するポイントにユーザー満足度を殺すのに十分です.
あなたの生産環境に関するデータを捕らえて分析することは重要です.あなたは積極的にシステムの障害を回避し、スムーズなユーザーエクスペリエンスを確保するためにあなたのWebアプリケーションの安定性とパフォーマンスの問題を解決する必要があります.
マイクロサービスアーキテクチャでは,その課題は,アベイラビリティと性能問題を迅速に解決することである.アプリケーションの可観測性が必要です.また,テレメトリデータを用いて観測可能性を示した.

OpenTelemrationは何ですか?
OpenTelemrationは、OpenCensus(Googleから)とOpenTracking(UTCから)の合併の後、単一のプロジェクトに現れました.プロジェクトは、クラウドネイティブのソフトウェアアプリケーションの組み込み機能を使用してテレメトリデータ(ログ、メトリック、トレース)を目指しています.
OpenTelemstryは、OpenTementTorrent Pythonライブラリを含むテレメトリデータを生成するための遅延の特定の実装を持っています.
現在のリリースをチェックアウトすることができますopentelemetry-python .
OpentElemrationだけテレメトリデータを生成し、分析と可視化のためのデータを送信する場所を決定することができます.この記事ではSigNoz - 我々の解析バックエンドとしてのオープンソースフルスタックアプリケーション性能監視ツール.
Pythonアプリケーション用のOpenTelemMeterから始める手順
  • インストール
  • サンプルアプリケーションのインストール
  • 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ダッシュボード

    サンプルアプリケーションのインストール
    必要条件
  • Python 3.4以降
    システムにPythonをインストールしていない場合は、link . Pythonのバージョンをチェックpython3 --version 端末が正しくインストールされているかどうかを確認します.
  • モンゴル語
    あなたが既にあなたのシステムで動いているMongoDBサービスを持っているならば、あなたはこのステップをスキップすることができます.
    MacOS用
    ダウンロードリンクhttps://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
  • Linux用https://docs.mongodb.com/manual/administration/install-on-linux/
    Windows用https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/
    MacOSでは、HomebrewのBooks Package Managerを使用してインストールを行います.インストールが完了すると、MongoDBサービスをbrew services start mongodb/brew/[email protected] あなたのMacOS端末で.
    MongoDBサービスを開始する

    ステップは、Pythonのアプリケーションを取得し、実行する
  • クローンサンプルフラスコアプリリポジトリ
  •    git clone https://github.com/SigNoz/sample-flask-app.git
       cd sample-flask-app
    
  • アプリが実行されているかどうかを確認する
  •    python3 app.py
    
    Pythonアプリケーションの端末からの実行
    これで、ローカルホスト上のアプリケーションのUIにアクセスできます.http://localhost:5000/
    ポート5000でアクセスされるPythonアプリのUI

    OpenTelemrationとデータをSignozに送る計装
  • OpentElemental Pythonインストルメンテーションインストール
    アプリケーションフォルダには、要件と呼ばれるファイルが含まれます.txt.このファイルにはopentElemental Pythonのインストーメンテーションを設定するすべての必要なコマンドが含まれます.インストーラを開始するために必要なすべての必須パッケージは、このファイルの助けを借りてインストールされます.パスをサンプルアプリケーションのルートディレクトリに更新し、次のコマンドを実行してください.
  •    pip3 install -r requirements.txt
    
    インストール中にハングするならgrpcio PPP 3のインストール中にOpenTelemration輸出OTLPは、次の手順に従って以下のとおりthis stackoverflow link .
  • PIP 3のインストール
  • python 3 - m pip install -- setupツールのアップグレード
  • PIP 3のインストール--キャッシュディレクトリを無効にします
  • アプリケーション固有のパッケージのインストール
    この手順は、アプリケーションに固有のパッケージをインストールする必要があります.インストールしたアプリケーションのルートディレクトリにこのコマンドを実行してください.このコマンドはユーザがどのインストーメンテーションパッケージにインストールしてインストールするかを示します.
  •    opentelemetry-bootstrap --action=install
    
  • スパンのエクスポートを構成し、アプリケーションを実行します
    あなたはほとんど完了です.最後のステップでは、OTLPエクスポート用のいくつかの環境変数を設定する必要があります.設定する環境変数
  • ServiceRange Name Count -アプリケーションサービス名(好きな名前)
  • EndpointLineアドレス---------- - OKLP GRPCコレクタエンドポイントアドレス( signozのip )
  • これらの環境変数の世話をした後、あなたの計装アプリケーションを実行する必要があります.
    端末で次のコマンドを使用してこれらをすべて実行します.
       OTEL_RESOURCE_ATTRIBUTES=service.name=pythonApp OTEL_METRICS_EXPORTER=none OTEL_EXPORTER_OTLP_ENDPOINT="http://<IP of SigNoz>:4317" opentelemetry-instrument python3 app.py
    
    Ip of SigNoz この場合、localhostに置き換えられます.したがって、最終コマンドは次のようになります.
       OTEL_RESOURCE_ATTRIBUTES=service.name=pythonApp OTEL_METRICS_EXPORTER=none OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" opentelemetry-instrument python3 app.py
    
    そして、おめでとう!あなたのサンプルPythonアプリケーションを計装している.これで、SIGNOZダッシュボードにアクセスできますhttp://localhost:3000 パフォーマンスメトリクスのあなたのアプリケーションを監視する.
    アプリケーションの一覧に表示されるPythonアプリケーション

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

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

    Signozを試している間はどんな問題にも直面しているなら、次のように書いてください.[email protected]
    あなたがSignozについてもっと読みたいならば👇
    Golang Application Performance Monitoring with SigNoz
    Nodejs Application Performance Monitoring with SigNoz