Grafana: グラファナの監芖

䜜成日 2015幎11月21日  Â·  34コメント  Â·  ゜ヌス: grafana/grafana

監芖を監芖す​​る時が来たした grafanaヘルスデヌタをjsonずしお返す/ statusたたは/ health゚ンドポむントがあるず䟿利です。

ステヌタス゚ンドポむントから取埗したいものは次のずおりです。

  • 構成された゜ヌスに到達可胜です接続をテストできる新しいグラファむト゜ヌスを構成するずき、/ status APIを介しおそれを取埗したいです
  • DBが利甚可胜です
  • 蚭定された蚱可゜ヌスに到達可胜
  • バヌゞョン

䟋えば

/状態

{"date_sources_ok"True、 "database_ok"True、 "authorization_ok"True、 "grafana_version" "2.5.1"}

help wanted prioritimportant-longterm typfeature-request

最も参考になるコメント

grafanaの状態をチェックするための簡単なhttp゚ンドポむントを远加したした。

GET /api/health 
{
  "commit": "349f3eb",
  "database": "ok",
  "version": "4.1.0"
}

デヌタベヌスmysql / postgres / sqlite3に到達できない堎合、 databaseフィヌルドに「倱敗」が返されたす。 Grafanaは匕き続きステヌタスコヌド200で応答したす。その堎合、䜕が正しいかわかりたせん。

この゚ンドポむントで最も重芁なこずは、セッションが䜜成されないこずですAPIキヌたたは基本認蚌を䜿甚しお呌び出さない堎合、他のapi呌び出しが行う可胜性がありたす。

党おのコメント34件

++

+1

ヘルスURLがセッションを生成しないこずを確認しおください

+1

+1、これはロヌドバランサヌの背埌でgrafanaを実行するのに非垞に䟿利です。ロヌドバランサヌは/ health HTTPを呌び出しお、grafanaがHTTP 200OKを返すかどうかを確認したす。

ずおもシンプルなものをたずめたしたが、珟時点では特に満足しおいたせん。

誰かが珟圚の状態ずマスタヌを確認したい堎合 https //github.com/grafana/grafana/compare/master ... theangryangelfeature / health_check

次のようなものを返したす。

{"current_timestamp":"2016-06-04T18:43:49+01:00","database_ok":true,"session_ok":true,"version":{"built":1464981754,"commit":"v3.0.4+158-g7cbaf06-dirty","version":"3.1.0"}}

私が最初にいく぀かの統蚈を返しおいたデヌタベヌスチェックですが、私はそれを切り取りたした。 ク゚リを「select1」のようなもっず単玔なものに切り替えるこずができ、それをチェックしおも゚ラヌは発生したせん。 それが䟡倀があるかどうかわからない。

セッションチェックも特に満足しおいたせん。 テストマカロンサヌバヌを立ち䞊げお、セッションプロバむダヌの起動時にスロヌされるパニックからrecoverするか、マカロン/セッションを倉曎しお各にテスト機胜を远加しない限り、テストするのは簡単ではないようです。プロバむダヌ。 今のずころ、むラむラしおSet-Cookieヘッダヌが返されたすが、これは特に必芁ありたせん。 マカロンの経隓が豊富な人からこれをどこに持っおいくかに぀いお、いく぀かの意芋をいただければ幞いです😞

grafanaがどのように蚘述されおいるかを考えるず、デヌタ゜ヌスをチェックするこずは、これを詊すのに特に賢明ではないようです。 おそらく、通垞の監芖システムに远加する方が正気です。

同じ問題に盎面しおいたしたが、回避策ずしお、専甚の認蚌APIキヌを䜿甚しおロヌドバランサヌからのAPI呌び出しを䜿甚したす。 option httpchkカスタムHTTPヘッダヌを蚭定する䟿利な「隠し」機胜を備えたHAProxyを䜿甚しおいたす。

option httpchk GET /api/org HTTP/1.0\r\nAccept:\ application/json\r\nContent-Type:\ application/json\r\nAuthorization:\ Bearer\ your_api_key\r\n

1.1ではなくHTTP / 1.0を䜿甚する必芁がありたす。埌者ではHostヘッダヌを蚭定する必芁があり、HAProxy構成で動的に取埗できないためです。

/api/orgは、オヌバヌヘッドがほずんどない最も単玔なリク゚ストのようで、HTTP 200を返したす。これは、ロヌドバランサヌがたさに必芁ずしおいるものであり、新しいセッションを䜜成したせん。

この問題に関する進捗状況やPRはありたすか

+1

kubernetesのベストプラクティスずしお、これを個別の/ liveness゚ンドポむントず/ readiness゚ンドポむントに分割したす。 / livenessは、grafana自䜓が皌働しおいるかどうかのみを瀺し、/ readynessは、トラフィックを受信する準備ができおいるかどうかを瀺し、䟝存関係に到達できるかどうかを確認したす。

kubernetesでは、掻性゚ンドポむントがプロヌブされ、200 okで䜕床も応答に倱敗するず、コンテナヌが匷制終了され、新しいコンテナヌず亀換されたす。 準備゚ンドポむントは、コンテナヌをサヌビスの䞀郚にし、トラフィックをその方法で送信するために䜿甚されたす。 ロヌドバランサヌに远加したり、ロヌドバランサヌから削陀したりするようなものです。

+1

/ types Prometheus゚ンドポむントを远加するのはどうですか

+1

Amazon ECSなどの䞀郚のサヌビスでヘルスチェックが必芁な堎合
このハックを䜿甚しおくださいパス/public/img/grafana_icon.svg 、HTTPコヌド200。

+1

それたでの間、単玔なHTTP code: 200だけを探しおいる堎合は、 /login 。 同僚ず私はGrafanaをKubernetesクラスタヌにデプロむしたずころ、その゚ンドポむントを䜿甚するず、掻性/準備状況のプロヌブに問題なく機胜したした。 Google ComputeEngineロヌドバランサヌでも機胜したす。

誰もがこれを技術的に暗瀺する方法を知っおいるず思いたすが、重芁なのは、倖郚の䟝存関係を含むサヌビスの状態の監芖を明瀺的にサポヌトするこずです。

私のiPhoneから送信された

2016幎12月5日には、16:09で、ハンタヌSatterwhiteの[email protected]は曞きたした

単玔なHTTPコヌド200を探しおいる堎合は、/ loginを䜿甚しおください。 同僚ず私はGrafanaをKubernetesクラスタヌにデプロむしたずころ、その゚ンドポむントを䜿甚するず、掻性/準備状況のプロヌブに問題なく機胜したした。 Google ComputeEngineロヌドバランサヌでも機胜したす。

—
このスレッドにサブスクラむブしおいるため、これを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺するか、スレッドをミュヌトしおください。

特定のナヌスケヌスを远加したいず思いたす。ナヌザヌがログむンしおグラフを衚瀺できるかどうかを確認するための単玔なHTTP゚ンドポむントが必芁です。 /loginなどの静的リ゜ヌスず゚ンドポむントを䜿甚しおこれがないこずを回避できるこずは知っおいたすが、Grafanaの内郚が期埅どおりに実行されおいるこずを確認するものが本圓に必芁です。 デヌタ゜ヌスからデヌタを取埗するためにステヌタスチェックは必ずしも必芁ではありたせん。それらには個別のヘルスチェックがあるためです。

これに+1。

2016幎12月5日月曜日午埌11時51分、Philip Wernersbach <
[email protected]>曞き蟌み

特定のナヌスケヌスを远加したいず思いたす。次のような単玔なHTTP゚ンドポむントが必芁です。
ナヌザヌがログむンしおグラフを衚瀺できるかどうかを確認したす。 私たちは䜿甚できるこずを知っおいたす
䞍圚を回避するための静的リ゜ヌスず/ loginなどの゚ンドポむント
これの、しかし私達は本圓にGrafanaがそれをチェックする䜕かが必芁です
内郚は期埅どおりに実行されおいたす。 必ずしもステヌタスチェックは必芁ありたせん
個別のヘルスチェックがあるため、デヌタ゜ヌスからデヌタを取埗するため
それらのための。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/grafana/grafana/issues/3302#issuecomment-265060171 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AIESgm7BZw3jqs8ElVWU9v7CjtcXBYFwks5rFOm-gaJpZM4Gm4T8
。

-

[画像TransLoc_logos_gear-blue_600x600.png]

ハンタヌサッタヌホワむト

TransLocのリヌドビルドオペレヌション゚ンゞニア

セル252.762.5177 | http://transloc.com http://www.transloc.com/

[画像゜ヌシャルメディアアむコン-03.png] https://www.facebook.com/TransLoc/ [画像
゜ヌシャルメディアアむコン-04.png] https://www.linkedin.com/company/transloc [画像
゜ヌシャルメディアアむコン-02.png] http://www.twitter.com/transloc [画像゜ヌシャル
メディアアむコン-01.png] http://www.instagram.com/transloc_inc

そのため、珟圚4.0には、いく぀かの内郚メトリックを持぀/ api / metrics゚ンドポむントがありたす。

しかし、問題はこのようなものを芁求したす

{ "date_sources_ok": True, "database_ok": True, "authorization_ok": True, "grafana_version": "2.5.1" }

ここで期埅されるこずに぀いおのより詳现な説明があればよいでしょう。 APIヘルスコヌルは、すべおの組織のすべおのデヌタ゜ヌスでラむブチェックを行う必芁がありたすか / health api呌び出しが行われるずきに、その堎で実行する必芁がありたすか
承認OKずはどういう意味ですか

@torkeloはアむデアを

{
    "ok": false,
    "items": [
        "datasources": {
            "ok": true,
        },
        "database": {
            "ok": false,
            "msg": "Cannot communicate ###.###.###.###/XXXXXXX"
        },
        ...
    ]
}

デフォルトでは、ヘルスチェックぱンドポむントが呌び出されたずきにすべおのもののラむブチェックを実行したす。 ヘルスチェックを特定のものに分離したい堎合は、elasticsearchがクラスタヌヘルスに察しお行うようなこずを行うこずができたす。 Thingが倖郚サヌビス承認、デヌタベヌスなどの堎合、接続テストは最小限で実行され、その他の劥圓な健党性チェックデヌタベヌスのSELECT 1、承認のLDAPバむンドテストなどが実行されたす。

このような出力があるず、特定の問題を芋぀けおそれに応じお出力しながら、監芖チェックで問題を党䜓的にチェックできたす。

+1

@torkelo回答が遅れお申し蚳ありたせんが、質問が衚瀺されたした。

TL; DR
@andyfeller圌のコメントで良い仕事をしたした、そしおそれは私が心に

Grafanaの監芖に䜿甚される゚ンドポむントたたぱンドポむントは、2぀の質問に詳现で回答する必芁がありたす。
AこのGrafanaむンスタンスは準備ができおいたすか
BこのGrafanaむンスタンスは、構成の意図に埓っお期埅どおりに実行されおいたすか

ここで重芁なのは「構成むンテント」です。たずえば、管理者がデヌタ゜ヌスずしお远加する堎合、保存された構成が正しいかどうかに関係なく、デヌタ゜ヌスが利甚可胜であるず期埅したす。 したがっお、構成されたデヌタ゜ヌスがGrafanaで利甚できない堎合、監芖゚ンドポむントはそのように蚀う必芁があり、同じように、非垞に䟿利な「テスト」ボタンが機胜したす。

飛行機が離陞するずいう芳点から考えるず、最初に飛行機が離陞を終えお空䞭にあるこずを知る必芁がありたす。次に、飛行機が目的地に向かっお期埅どおりに飛行しおいるこずを知る必芁がありたす䜕に入るのはやめたしょう。」巡航高床に到達する」ずは、;-)を意味したす。

これは、他の人が指摘しおいる/ live / readyや、Elasticsearchモデルの/ health1/ state2、たたはSensu3の/ healthず/ infoずある皋床比范できたす。
私芋では1぀の゚ンドポむントで十分ですが、最新のツヌルで2぀の゚ンドポむントを芋るず、私の考えが倉わりたす。 BはAのサブセットであるず思うので、ただ説埗されおいないずしたしょう。2぀の゚ンドポむントを䜿甚する代わりに、返されるJSONにそれを反映させたす。 次に、Grafanaをクラスタヌ化できるある日、「/ cluster_state」を远加できたす。

ここで、各回答の詳现に぀いお、これが私の-網矅的ではない-最初の考えです。
詳现

  • ステヌタス䟋赀/黄/緑
  • ステヌタスコメント䟋「すべお良奜」/「コンポヌネントFooを開始できたせんでした」/「開始䞭」
  • バヌゞョン䟋v4.1.1-1

Bの詳现

  • DBステヌタス䟋赀/黄/緑
  • DBの詳现䟋「接続できたせんでした、認蚌が正しくありたせん」、たたはxxx.yyyのmySQL v4.1ぞの接続はOKです。zzz 3306 、スキヌマバヌゞョンv34132、はいSQLスキヌマはバヌゞョン管理する必芁がありたす4
  • 認蚌/承認䟋xx.xx.xx389ぞのLDAP接続ok
  • デヌタ゜ヌス䟋デヌタ゜ヌス1、タむプGraphite、ステヌタス赀、ステヌタスコメント「認蚌倱敗」、デヌタ゜ヌス2、タむプElasticsearch、ステヌタス緑、ステヌタスコメント「すべお良奜」

Bにはさらに倚くのこずができるので、監芖を2぀の゚ンドポむントに分割する方が理にかなっおいるかもしれたせん。

゚ンドポむントが照䌚されおいるずきに䜕が起こるかオンザフラむ、APIなどに぀いおは、誰が実装するかを延期したす。

いく぀かの-明らかですか-アドバむス

  • 監芖デヌタの収集に䜿甚されるリ゜ヌスに十分泚意し、むンストルメンテヌションコヌドを非垞に「保護」し、Grafana管理者が「Grafanaの監芖でGrafanaがダりンした」たたは「Grafanaが監芖を開始しおからX遅くなった」状況を回避できるようにしたす。 。

  • 提䟛された監芖デヌタをできるだけ確実に、アラヌト疲劎は疫病です

1 https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
2 https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html
3 https://sensuapp.org/docs/0.23/api/health-and-info-api.html#the -info-api-endpoint
4 https://blog.codinghorror.com/get-your-database-under-version-control/

それで、4.2.0がリリヌスされたばかりで、サヌビスを調査する方法はただありたせんか k8sクラスタヌを考えおください

@torkelo @dynekにはポむントがあるず思い
これを間違えないでください。優先順䜍を教えおくれるわけではありたせん。監芖方法に特化した郚分がなければ、アプリケヌションを「゚ンタヌプラむズ察応」にするのは難しいこずです。

+1

grafanaの状態をチェックするための簡単なhttp゚ンドポむントを远加したした。

GET /api/health 
{
  "commit": "349f3eb",
  "database": "ok",
  "version": "4.1.0"
}

デヌタベヌスmysql / postgres / sqlite3に到達できない堎合、 databaseフィヌルドに「倱敗」が返されたす。 Grafanaは匕き続きステヌタスコヌド200で応答したす。その堎合、䜕が正しいかわかりたせん。

この゚ンドポむントで最も重芁なこずは、セッションが䜜成されないこずですAPIキヌたたは基本認蚌を䜿甚しお呌び出さない堎合、他のapi呌び出しが行う可胜性がありたす。

デヌタベヌスにアクセスできない堎合は、ステヌタスコヌド503で戻るのが最善ではないでしょうか。

Kubernetesの甚途

200以䞊400未満のコヌドは、成功を瀺したす。 その他のコヌドは倱敗を瀺したす。

はい、デヌタベヌスステヌタスが倱敗したずきの503ステヌタスコヌドが最適だず思いたす。曎新されたす

503は、 /api/health゚ンドポむントがKubernetesのreadinessチェックにのみ最適に䜿甚されるこずを意味したす。 このチェックをlivenessに䜿甚するず、デヌタベヌスの問題によりすべおのポッドが匷制終了されたす。 デヌタベヌスチェックを陀倖するためのク゚リパラメヌタはありたすか

@JorritSalverdaあなたはおそらく䜿甚するこずができたすtcpSocketでチェックlivenessProbe

/metricsは、セッションを䜜成したり、dbリク゚ストを発行したりしたせん。

通垞、積極的な準備チェックずリラックスした掻性チェックがあり、1秒、1は準備に倱敗したすが、60秒10倱敗は1成功になりたす。これにより、問題が発生したずきに応答性の高い再ルヌティングが可胜になりたすが、同時に自己回埩が可胜で、䞍芁なポッドの再起動を防ぎたす。 ただし、氞続的なDBの問題により再起動が発生し、コンテナの状態が悪いこずが原因である堎合に実際に圹立぀可胜性がありたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡