signoz
SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. 🔥 🖥. 👉 Open source Application Performance Monitoring (APM) & Observability tool
アプリケーションの動作状況をログ・数値データ・処理の流れの3つの観点からひとつの画面でまとめて監視できるオープンソースの監視ツールです。
・企業:自社システムの障害検知やパフォーマンス分析を、DatadogやNew Relicのような高額なサービスを使わずに自社環境で実現できます。 ・スタートアップ:アプリケーションのエラー率や応答速度をリアルタイムで把握でき、問題の原因を素早く特定してサービス品質を維持できます。 ・個人事業主・フリーランス:運用しているサービスの異常を自動で検知し通知を受け取れるため、少人数でも安定したシステム運用が可能になります。
DatadogやNew Relicはデータ量に応じて月額費用が高額になりがちですが、SigNozは自分のサーバーで運用するためデータ量の制限がなく、ログ・数値・処理の流れをひとつのツールで一元管理できます。
機能
アプリケーションパフォーマンス監視
SigNoz APMを使用してアプリケーションとサービスを監視できます。p99レイテンシ、エラーレート、Apdex、1秒あたりのオペレーション数などの主要なアプリケーションメトリクスの既成チャートが付属しています。アプリケーションから発行されるデータベース呼び出しや外部呼び出しも監視できます。詳しくはこちらをご覧ください。
OpenTelemetryでアプリケーションを計装することで始められます。
ログ管理
SigNozは集中型ログ管理ソリューションとして使用できます。データストアにはClickHouse(UberやCloudflareなどが使用)を採用しており、ログデータに対して極めて高速かつ高度に最適化されたストレージです。クイックフィルターと強力なクエリビルダーを使用して、すべてのログを瞬時に検索できます。
ログに対するチャートを作成し、カスタマイズしたダッシュボードで監視することも可能です。詳しくはこちらをご覧ください。
分散トレーシング
分散トレーシングはマイクロサービスアプリケーションの問題をトラブルシューティングするために不可欠です。OpenTelemetryを基盤としたSigNozの分散トレーシングは、サービス間のユーザーリクエストを追跡し、パフォーマンスのボトルネックを特定するのに役立ちます。
フレームグラフやガントチャートを使用して、ユーザーリクエストの詳細な内訳を確認できます。任意のスパンをクリックすると、トレース全体が美しく表示され、リクエストフローのどこで実際に問題が発生したかを把握しやすくなります。
詳しくはこちらをご覧ください。
メトリクスとダッシュボード
インフラストラクチャやアプリケーションからメトリクスを取り込み、カスタマイズしたダッシュボードを作成して監視できます。円グラフ、時系列グラフ、棒グラフなど、さまざまなパネルタイプでニーズに合った可視化を作成できます。
使いやすいメトリクスクエリビルダーを使って、メトリクスデータに対するクエリを素早く作成できます。複数のクエリを追加し、数式でクエリを組み合わせることで、非常に複雑なクエリも素早く作成できます。
詳しくはこちらをご覧ください。
LLMオブザーバビリティ
包括的なオブザーバビリティでLLMアプリケーションを監視・デバッグできます。LLM呼び出しの追跡、トークン使用量の分析、パフォーマンスの監視、本番環境でのAIアプリケーションの動作に関するインサイトを得ることができます。
SigNoz LLMオブザーバビリティは、言語モデルのパフォーマンスの把握、プロンプトとレスポンスの問題特定、トークン使用量とコストの追跡、AIアプリケーションのパフォーマンスと信頼性の最適化を支援します。
アラート
SigNozのアラートを使用して、アプリケーションで異常が発生した際に通知を受け取れます。任意のテレメトリシグナル(ログ、メトリクス、トレース)にアラートを設定し、しきい値を設定し、通知チャネルを設定して通知を受け取れます。アラート履歴や異常検知などの高度な機能により、よりスマートなアラートを作成できます。
SigNozのアラートは、問題を事前に特定し、顧客に影響が及ぶ前に対処するのに役立ちます。
詳しくはこちらをご覧ください。
例外監視
Python、Java、Ruby、Javascriptの例外を自動的に監視します。その他の言語では、数行のコードを追加するだけで例外の監視を開始できます。
アプリケーションでキャッチされたすべての例外の詳細なスタックトレースを確認できます。カスタム属性をログに記録して例外にさらなるコンテキストを追加することもできます。例えば、例外が発生したユーザーを特定するための属性を追加できます。
詳しくはこちらをご覧ください。
なぜSigNozなのか?
SigNozは監視とオブザーバビリティのすべてのニーズに対応する単一のツールです。SigNozを選ぶべき理由をいくつかご紹介します:
-
ログ、メトリクス、トレースを一つのツールでオブザーバビリティを実現
-
オープンソース標準であるOpenTelemetryの上に構築されており、あらゆるベンダーロックインから解放
-
ログ、メトリクス、トレースを相関させることで、デバッグ時により豊富なコンテキストを提供
-
データストアにClickHouse(UberやCloudflareなどが使用)を採用 — オブザーバビリティデータに対して極めて高速かつ高度に最適化されたストレージ
-
DIYクエリビルダー、PromQL、ClickHouseクエリにより、オブザーバビリティデータのクエリに関するあらゆるユースケースに対応
-
オープンソース — ユースケースに応じて、オープンソース版、クラウドサービス、または両方の組み合わせを利用可能
はじめに
SigNoz Cloudアカウントの作成
SigNoz Cloudは、SigNozを始める最も簡単な方法です。クラウドサービスは、メンテナンスを気にせずアプリケーションパフォーマンスのインサイト獲得に時間を費やしたいユーザー向けです。
Dockerを使用したデプロイ(セルフホスト)
Dockerを使用したインストール手順はこちらをご覧ください。
問題が発生した場合は、トラブルシューティング手順が参考になるかもしれません。
Helm Chartを使用したKubernetesへのデプロイ(セルフホスト)
Helm Chartを使用したインストール手順はこちらをご覧ください。
インフラ内でのマネージドサービスも提供しています。詳細は料金プランをご確認ください。
Slackコミュニティに参加
Slackでお気軽にご連絡ください 👋
対応言語:
SigNozはすべての主要なプログラミング言語の監視に対応しています。OpenTelemetryがサポートするフレームワークと言語はすべてSigNozでサポートされます。各言語の計装手順は以下をご覧ください:
完全なドキュメントはこちらでご確認いただけます。
他ツールとの比較
SigNoz vs Prometheus
Prometheusはメトリクスのみを扱いたい場合には優れています。しかし、メトリクス、ログ、トレースをシームレスに統合して使いたい場合、Prometheusと他のツールを組み合わせる現在のエクスペリエンスは理想的ではありません。
SigNozはメトリクスおよび他のテレメトリシグナルのためのワンストップソリューションです。また、すべてのテレメトリシグナルの収集に同じ標準(OpenTelemetry)を使用するため、迅速なトラブルシューティングのためにこれらのシグナルを相関させることもできます。
例えば、あるタイムスタンプでk8sクラスターのインフラストラクチャメトリクスに問題があることが分かった場合、ログやトレースなどの他のシグナルにジャンプして、問題を迅速に把握できます。
SigNoz vs Jaeger
Jaegerは分散トレーシングのみを行います。SigNozはメトリクス、トレース、ログの3つ — オブザーバビリティの3本柱すべてをサポートします。
さらに、SigNozにはJaegerと比較していくつかの高度な機能があります:
- Jaeger UIはトレースやフィルタリングされたトレースにメトリクスを表示しません
- Jaegerはフィルタリングされたトレースの集約値を取得できません。例えば、customer_type='premium'というタグを持つリクエストのp99レイテンシなどです。これはSigNozでは簡単に行えます
- SigNozではトレースからログへの遷移も容易です
SigNoz vs Elastic
- SigNozのログ管理はカラム型OLAPデータストアであるClickHouseを基盤としており、ログの集約分析クエリがはるかに効率的です
- データ取り込み時のリソース要件がElasticと比較して50%少ない
ElasticとSigNozの比較ベンチマークを公開しています。こちらをご覧ください。
SigNoz vs Loki
- SigNozは大量データに対する高カーディナリティデータの集約をサポートしていますが、Lokiはサポートしていません
- SigNozは高カーディナリティデータに対するインデックスをサポートし、インデックス数に制限がありません。一方、Lokiはいくつかのインデックスを追加しただけでストリームの最大数に達します
- 大量のデータを検索する場合、SigNozと比較してLokiは困難で低速です
LokiとSigNozの比較ベンチマークを公開しています。こちらをご覧ください。
コントリビュート
大小を問わずコントリビューションを歓迎しています。SigNozへのコントリビューションを始めるには、CONTRIBUTING.mdをお読みください。
始め方が分からない場合は、Slackコミュニティの#contributingチャネルでお気軽にお声がけください。
ドキュメント
ドキュメントはhttps://signoz.io/docs/でご覧いただけます。不明点や記載漏れがある場合は、`documentation`ラベルを付けてGitHub Issueを作成するか、コミュニティSlackチャネルでお問い合わせください。
コミュニティ
分散トレーシング、オブザーバビリティ、SigNozについて詳しく知りたい方、他のユーザーやコントリビューターと交流したい方は、Slackコミュニティにご参加ください。
アイデア、質問、フィードバックがございましたら、Github Discussionsで共有してください。
いつもながら、素晴らしいコントリビューターの皆様に感謝いたします!