よくある質問
全般
Prometheusとは何ですか?
Prometheusは、活発なエコシステムを持つオープンソースのシステム監視およびアラートツールキットです。これはKubernetesによって直接サポートされている唯一のシステムであり、クラウドネイティブエコシステムにおける事実上の標準となっています。概要をご覧ください。
他の監視システムと比較してPrometheusはどのように異なりますか?
比較ページをご覧ください。
Prometheusにはどのような依存関係がありますか?
主要なPrometheusサーバーは、単一のモノリシックバイナリとしてスタンドアロンで実行され、外部依存関係はありません。
これはクラウドネイティブですか?
はい。
クラウドネイティブは柔軟な運用モデルであり、古いサービス境界を分割して、より柔軟でスケーラブルなデプロイメントを可能にします。
Prometheusのサービスディスカバリは、ほとんどのツールやクラウドと統合されています。その次元データモデルと、数千万のアクティブシリーズにまでスケールする能力により、大規模なクラウドネイティブデプロイメントを監視できます。サービスを実行する際には常にトレードオフがあり、Prometheusは人間へのアラート配信の信頼性を最優先します。
Prometheusは高可用性にできますか?
はい、同じPrometheusサーバーを2台以上の別々のマシンで実行してください。Alertmanagerで重複排除されます。
Alertmanagerは、複数のAlertmanagerインスタンスを相互接続してAlertmanagerクラスターを構築することにより、高可用性をサポートしています。クラスターのインスタンスは、HashiCorpのMemberlistライブラリで管理されるゴシッププロトコルを使用して通信します。
Prometheusは「スケーリングしない」と言われました。
これは、単なるマーケティング上の主張であることが多いです。
Prometheusの単一インスタンスは、一部の長期ストレージソリューションとして自称するシステムよりも高性能になる可能性があります。数千万のアクティブシリーズを信頼性高く実行できます。
それ以上のものが必要な場合は、いくつかの選択肢があります。Robust PerceptionブログのPrometheusのスケーリングとフェデレーションは良い出発点であり、統合ページにリストされている長期ストレージシステムも同様です。
Prometheusは何語で書かれていますか?
PrometheusのほとんどのコンポーネントはGoで書かれています。Java、Python、Rubyで書かれているものもあります。
Prometheusの機能、ストレージフォーマット、APIはどの程度安定していますか?
Prometheus GitHub組織内のバージョン1.0.0に達したすべてのリポジトリは、 broadly セマンティックバージョニングに従います。破壊的な変更はメジャーバージョンのインクリメントによって示されます。実験的なコンポーネントについては、アナウンスでそのように明確にマークされている場合、例外が可能です。
バージョン1.0.0に達していないリポジトリでさえ、一般的に非常に安定しています。各リポジトリの正式なリリースプロセスと最終的な1.0.0リリースを目指しています。いずれにしても、破壊的な変更はリリースノート([CHANGE]でマーク)で指摘されるか、まだ正式なリリースがないコンポーネントについては明確に伝達されます。
なぜプッシュではなくプルなのですか?
HTTP経由でのプルには、いくつかの利点があります
- 必要に応じて追加の監視インスタンスを起動できます。たとえば、開発中の変更時にラップトップで起動できます。
- ターゲットがダウンしているかどうかを、より簡単かつ確実に判断できます。
- ターゲットに手動でアクセスして、Webブラウザでその健全性を検査できます。
全体として、プルはプッシュよりもわずかに優れていると考えていますが、監視システムを検討する際には主要なポイントと見なされるべきではありません。
プッシュする必要がある場合は、Pushgatewayを提供しています。
Prometheusにログをフィードするにはどうすればよいですか?
簡単な答え:やめましょう!代わりにGrafana LokiやOpenSearchのようなものを使用してください。
より長い答え:Prometheusはメトリックを収集および処理するためのシステムであり、イベントログシステムではありません。Grafanaのブログ記事「ログ、メトリック、グラフ、オーマイ!」では、ログとメトリックの違いについて詳しく説明しています。
アプリケーションログからPrometheusメトリックを抽出したい場合は、Grafana Lokiがそのために設計されています。Lokiのメトリッククエリドキュメントをご覧ください。
Prometheusは誰が書いたのですか?
Prometheusは、当初Matt T. ProudとJulius Volzによってプライベートに開始されました。初期開発の大部分はSoundCloudによってスポンサーされていました。
現在、さまざまな企業と個人によってメンテナンスおよび拡張されています。
Prometheusはどのようなライセンスでリリースされていますか?
PrometheusはApache 2.0ライセンスの下でリリースされています。
Prometheusの複数形は何ですか?
「extensive research」の後、Prometheusの複数形は「Prometheis」であることが判明しました。
これを覚えられない場合は、「Prometheus インスタンス」が便利な代替手段です。
Prometheusの設定をリロードできますか?
はい、PrometheusプロセスにSIGHUPを送信するか、/-/reloadエンドポイントにHTTP POSTリクエストを送信すると、設定ファイルがリロードされ適用されます。さまざまなコンポーネントは、失敗した変更を正常に処理しようとします。
アラートを送信できますか?
はい、Alertmanagerを使用します。
メール、さまざまなネイティブ統合、およびwebhookシステム(誰でも統合を追加できます)を介してアラートを送信できます。
ダッシュボードを作成できますか?
はい、本番環境ではGrafanaをお勧めします。また、コンソールテンプレートもあります。
タイムゾーンを変更できますか?なぜすべてUTCなのですか?
タイムゾーンの混乱を避けるため、特にいわゆる夏時間(Daylight Saving Time)が関係する場合、Prometheusのすべてのコンポーネントで内部的にUnix時間、表示目的でUTCのみを使用することにしました。UIに注意深く選択されたタイムゾーンを導入することは可能です。貢献を歓迎します。この取り組みの現在の状態については、issue #500を参照してください。
インストルメンテーション
どの言語にインストルメンテーションライブラリがありますか?
Prometheusメトリックでサービスをインストルメントするためのクライアントライブラリが多数あります。詳細については、クライアントライブラリのドキュメントを参照してください。
新しい言語のクライアントライブラリの作成に興味がある場合は、エクスポージョンフォーマットを参照してください。
機械を監視できますか?
はい、Node Exporterは、Linuxおよびその他のUnixシステムでCPU使用率、メモリ、ディスク使用率、ファイルシステムの空き容量、ネットワーク帯域幅などの広範なマシンレベルのメトリクスを公開します。
ネットワークデバイスを監視できますか?
はい、SNMP ExporterはSNMPをサポートするデバイスの監視を可能にします。産業用ネットワーク向けには、Modbus exporterもあります。
バッチジョブを監視できますか?
はい、Pushgatewayを使用します。バッチジョブの監視に関するベストプラクティスも参照してください。
Prometheusは標準でどのアプリケーションを監視できますか?
エキスポーターと統合のリストを参照してください。
JMX経由でJVMアプリケーションを監視できますか?
はい、直接インストラメントできないアプリケーションについては、JMX ExporterをスタンドアロンまたはJavaエージェントとして使用できます。
インストラメンテーションのパフォーマンスへの影響は?
クライアントライブラリと言語によるパフォーマンスは異なります。Javaの場合、ベンチマークによると、Javaクライアントでのカウンター/ゲージのインクリメントには、競合状況にもよりますが、12〜17ナノ秒かかります。これは、レイテンシが非常に重要なコードを除いて、無視できるレベルです。
実装
なぜすべてのサンプル値は64ビット浮動小数点数なのですか?
設計を簡素化するために64ビット浮動小数点数に限定しました。IEEE 754倍精度バイナリ浮動小数点形式は、253までの整数精度をサポートします。ネイティブ64ビット整数をサポートすることは、253より大きく263より小さい整数精度が必要な場合にのみ役立ちます。原則として、さまざまなサンプル値の型(より多くの64ビットをサポートする、ある種の大きな整数を含む)のサポートを実装できますが、現時点では優先順位は高くありません。カウンターは、1秒あたり100万回インクリメントされたとしても、285年以上経過しないと精度問題に直面しません。