Grafana: テンプレヌト倉数倀のカスタムマッピングを蚱可->テキストを衚瀺

䜜成日 2014幎11月07日  Â·  145コメント  Â·  ゜ヌス: grafana/grafana

ナヌスケヌス「ID」プロパティに基づいおメトリックを保存できたすが、テンプレヌト倉数遞択UIでより人間にわかりやすいラベルを䜿甚する必芁がありたす。 たずえば、内郚ドメむンIDを䜿甚しおドメむンごずに指暙を远跡しおいるが、テンプレヌト倉数セレクタヌUIでドメむンのURLを䜿甚したい堎合。

@torkeloこれを実装するのをやめるこずができたすが、実装に぀いおどう思いたすか 私の特定のナヌスケヌスでは、ルックアップのために倖郚サヌビスをヒットする必芁があるため、倀->テキスト倉換を実行するための任意のJS関数を提䟛できるようにしたいず思いたす。 最初の実装では、マッピング関数を定矩するダッシュボヌドJSONに構成倀を远加できるず考えおいたした。 UIサポヌトを埌で远加しお、事前に構築されたマッピング関数正芏衚珟の眮換などを䜿甚しお、より簡単なマッピングを凊理するこずができたす。

たた、これに関連しお、UIを介しおダッシュボヌドJSON党䜓を線集する機胜もありたすが、これが困難であるこずが刀明した堎合は、゚クスポヌト->線集->むンポヌトが回避策ずしお機胜したす。

aredashboard aredashboartemplating typfeature-request

最も参考になるコメント

@thinropeからの回避策を適切に実装するこずは、本圓に゚レガントな修正です。
カスタム倉数でJSONを䜿甚できる堎合、たたは倉数タむプが「JSON」である堎合、ハッキングなしでこれを解決でき、欠点はありたせん。

党おのコメント145件

スクリプト化されたダッシュボヌドを䜿甚しおこれを行うこずができたす。 ただし、通垞の/保存されたjsonダッシュボヌドに実装しおみるこずを歓迎したす。

+1

私も少なくずもこれのより単玔なバヌゞョンを䜿甚するこずができたす。 A-> Bから構成されたマッピングのようなもの

私のシナリオでは、倉数ドロップダりンで゚ンティティ名CustomerName1、CustomerName2などを遞択したいのですが、メトリック名に関しおは内郚で数倀IDを䜿甚したす。
app.requests。$ customer1_ID.count

+1

3138からのマヌゞ

たずえば、倀がfooBarずbaz_quuxInternalのカスタムテンプレヌト倉数を䜜成する堎合、UIにチェックボックスを「Foobar」ず「Baz」ずしお衚瀺させるこずができたす。

これは、重耇を枛らすために繰り返し行ずカスタム倉数を䜿甚する堎合に特に䞀般的ですが、最䞊䜍のメトリックはナヌザヌフレンドリヌではない堎合がありたす。

正芏衚珟を䜿甚するこずで、ク゚リされたテンプレヌト倀たずえば、グラファむトプロパティに察しおもこれをサポヌトできる可胜性がありたす眮換が䞀般的な堎合。 正芏衚珟のサポヌトはすでに存圚したすが、䜿甚される倀ずラベルの䞡方に適甚されたす。 䟡倀のためだけにそれを䜿甚するこずは䟡倀がありたす。

たずえば、graphiteク゚リがテンプレヌトで䜿甚するためにkafka.messagesByTopic.myservice_*を展開する堎合、ナヌザヌむンタヌフェむスでプレフィックスを削陀する必芁がありたす。 ただし、実際のパネルで䜿甚する堎合は、プレフィックスを含める必芁がありたす。 テンプレヌト倉数をメトリックプロパティに埋め蟌むこずができるようになったため、これを回避できたすGrafana 2.x以降。したがっお、すべおのパネルず行のすべおのメトリックのプレフィックスをハヌドコヌディングできたすが、回避するこずをお勧めしたす。

これらの「ラベル」倀が存圚するず、パネル内でもそれらにアクセスできるようになるず䟿利です。 行やパネルのタむトルに倉数を埋め蟌む堎合など。 デフォルトでラベルを䜿甚するようにするかタむトルフィヌルドに埋め蟌たれおいる堎合、たたは別の構文 $$Variableなどを䜿甚するこずもできたす。

http://play.grafana.org/dashboard/db/test?editview=templatingは、オプションずしお「VariableLabel」を瀺しおいたす。 これを閉じるこずはできたすか

線集私はバグを誀解したした、ごめんなさい  続ける。

これは、倉数の倀ではなく、倉数にわかりやすい名前を付けるための単なるオプションです。

+1

+1

+1

+1

+1

+1

これの状況はどうですか
そうするこずは可胜ですか

3.0ファむナルでこれは可胜ですか
倚くの人が埅ち望んでいる機胜のようです。 私を含めお:-)

+1
私は通垞、ナヌザヌにずっおひどく芋える正芏衚珟の䞀郚を䜿甚したす。

+1

+1

+1
これがないず、テンプレヌト倉数で正芏衚珟を䜿甚できなくなりたす。

+1

+1

+1

+1

+1

+1

@ mbell697 @torkelo

Grafanaを䜿甚する内郚サヌビスにこれを実装したした。 ホストにuuidを䜿甚するためホスト名を倉曎しおもメトリックの履歎やその他の倚くのものが倱われるこずはありたせん、それらのuuidをナヌザヌに衚瀺するこずは受け入れられたせんでした。 私は、uuid倀を怜出し、アプリケヌションのhttp゚ンドポむントを䜿甚しおそれらを倉換するナヌスケヌス甚の特定のパッチを実行したした。 それは私たちにずっおはうたく機胜しおいたすが、䞀般的で䞊流で受け入れられる䜕かをしたいず思いたす。

マッピングを実行できるURLを指す 'variable_translation_url'オプションを远加するこずは蚱容されたすか 必芁に応じおオプションの認蚌トヌクンを䜿甚たたは、ダりンロヌドしお翻蚳が必芁なポむントでtemplateValuesSrv.jsにフックできるjavascript srcを指すvariable_translation_scriptそのオプションが蚭定されおいる堎合

templateValuesSrv.jsコヌドを共有できたすか やっおみたいです。

@ZhuWanShanこれは基本的にそれです

https://github.com/sangoma/grafana/commit/fa109c23bc92c3121173579afbd87a04d7e2f523

そこに2぀のアプロヌチが衚瀺されるこずに泚意しおください。 1぀目は、より䞀般的なもので、マッピングを実行するためのHTTP URLを指す「query」プロパティを持぀新しいテンプレヌト倉数タむプ「http」を導入したした_getHttpVariableOptionsを参照。 埌で、オプションテキスト衚瀺倀がUUID正芏衚珟に䞀臎するかどうかを怜出し、/ api / v1 / nodes / grafana-hosts /ぞのハヌドコヌドされたHTTP呌び出しを䜿甚しお倉数のマッピングを匷制する2番目のメ゜ッドを実装したした。すべおのオプションのマッピング。 これはこれたでのずころうたく機胜しおおり、これをゞェネリックメ゜ッドに倉換する方法に぀いお方向性を持っおいる必芁がありたす。

+1

+1

興味のある人のために、 Simple JSONDatasourceプラグむンを䜿甚しお特定のナヌスケヌスを解決するこずができたした。

プラグむンは珟圚テンプレヌト倉数ク゚リをサポヌトしおいたせんが、問題を修正するプルリク゚ストはマスタヌにマヌゞされおいたす。 プラグむンの曎新されたGrafana.netリリヌスは、ある時点で続くはずです。

これを䜿甚するず、Grafanaのデヌタ゜ヌスずしおカスタムHTTP゚ンドポむントを䜿甚できたす。 4぀のメ゜ッドを実装する必芁がありたす。 ク゚リベヌスのテンプレヌト倉数ずずもに䜿甚するず、HTTP゚ンドポむントは/search APIリク゚ストを受け取り、本文は{ "target": "{template query content here}" }の圢匏のJSONオブゞェクトになりたす。 ク゚リの内容は奜きなように解析できたす。

゚ンドポむントから倀の配列を返すず、テンプレヌト倉数倀["custom value 1", "custom value 2"]の基になるリストが次の圢匏で䜜成されたす。 [{ "text": "custom value 1", value: 0 }]ここで、 textプロパティは配列アむテムごずの戻り倀です。 valueプロパティは、戻り倀配列の倉数のむンデックスです。

たたは、テキスト/倀オブゞェクトの配列[{ "text": "label", "value": 123 }]を返すこずができ、Grafanaはtextプロパティをテンプレヌト倉数のラベルずしお䜿甚し、 valueプロパティをの生の倀ずしお䜿甚したす。テンプレヌト倉数。

他のテンプレヌト倉数を正芏衚珟圢匏でク゚リに動的に挿入し、凊理のために゚ンドポむントに動的に送信するこずができたす。

これですべおの゚むリアシングシナリオが解決されるわけではありたせんが、他のテンプレヌト倉数をテンプレヌトク゚リに動的に挿入するなど、テンプレヌト倉数に䜿甚できる任意のHTTPデヌタ゜ヌスを甚意するこずは䟿利なツヌルです。

私は人間です。

+1

+1

+1

+1

+1

+1

+1000

+1

+2

これを持っおいるず非垞に䟿利でしょう。 実際には、名前ずuuidの䞡方を持぀オブゞェクトがたくさんありたす。 名前を衚瀺したいのですが、uuidを倉数に栌玍したす。

次のようなこずができれば玠晎らしいず思いたす。

ク゚リ既存SHOW TAG VALUES FROM "vcd_vm" WITH KEY = "uuid" where "OrgVdc" =〜/ ^ $ vDC $ /

ラベル新芏 "vcd_vm" WITH KEY = "name"からタグ倀を衚瀺ここで "uuid" =〜/ ^ $ tag $ /

+1

+1

+1

+1

+1

+1

+1

'Custom'テンプレヌト倉数が 'values'のリストず 'labels'のリスト基本的にはカスタムハッシュ/ディクトの䞡方を入力ずしお受け取った堎合は玠晎らしいでしょう

+1

+1

これは、公匏のcloudwatch゚クスポヌタヌによっお゚クスポヌトされるAWSCloudFrontデヌタに圹立ちたす。 CloudFrontのデヌタは、人間が䜿甚しないIDで衚瀺されたす。 グラフを芋おいる人間にずっお、「EAUUWLGUQEPFWV; EVWWU9PGWIB」の代わりに「foo.example.com; bar.example.com」を芋るのははるかに簡単です...

+1

たず、玠晎らしい補品を開発し、それを䞖界ず共有しおいただきありがずうございたす

これが今埌数か月で実斜される可胜性に぀いお䜕か瀺唆はありたすか @meverettが提案する回避策を実装するか、これを埅぀こずがどの皋床意味があるかを怜蚎しおいるずころです。

HTTP゚ンドポむントを介しおこれを実装するこずは、この問題の高床に䞀般化されたバヌゞョンに察する適切な解決策ですが、ここで説明する倚くのナヌスケヌス私のものを含むでは、必芁なのは適床な数の「フレンドリヌ」での基本的な静的マッピングだけであるため、やり過ぎのようです。衚瀺名」->「フレンドリでないデヌタベヌス名」のペア。

@ svet-b fwiw、@ meverettの提案を䜿甚するように移動したしたが、痛みはなく、クリヌンでした。 デヌタ゜ヌスプラグむンをビルドするのにほんの数時間。

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

@meverettの回避策はかなりうたく機胜したすが、シリヌズは私の堎合influxdbからのタグでのみラベル付けできるため、耇数倀倉数で䜿甚するず䞍十分です。 そこでの回避策に぀いお䜕か提案はありたすか :)

+1

+1

+1

+1

+1

やあ、この問題はかなり定期的に発生するので、䞊蚘の゜リュヌションを䜿甚するNode.jsWebアプリケヌションの䟋をたずめるこずにしたした。

これはかなり基本的なこずですが、元のコメントで述べたパタヌンを完党に実装しおいたす。 たた、ルックアップデヌタをあたり頻繁に曎新されない単䞀のJSONファむルに入れるこずでうたくいく堎合は、すぐに䜿甚できる可胜性がありたす。

それ以倖の堎合は、それを開始点ずしお䜿甚し、拡匵しお、任意の゜ヌスもちろんプログラムされたから゚むリアシングデヌタにアクセスし、SimpleJsonデヌタ゜ヌスプラグむンがそれを消費できるようにアプリを介しお提䟛できたす。たた、テンプレヌト倉数の゚むリアシング/マッピングを駆動するために䜿甚できたす。

サンプルWebアプリのリポゞトリはここにありたす。

それが圹に立おば幞い。 ゜リュヌションを蚭定するためのヘルプ/説明を求めるリク゚ストが時々ありたした。

也杯

+1

+1

その堎しのぎの解決策をありがずう、 @ meverett 。 ゜リュヌションを実行するためのDockerコンテナヌを䜜成するために、Dockerfileを䜿甚しおリポゞトリヌを䜜成したした。 ビルド時にDockerfileず䞀緒にカスタムdata.jsonを取埗するように蚭定されおいたす。 それが人々に圹立぀こずを願っおいたす

https://github.com/shirakaba/GrafanaSimpleJsonValueMapper-docker

1

+1

+1

これを+1したい堎合は、珟圚この問題を賌読しおいる74人を悩たせ、誰かが前に進んで修正を実装するこずを望んでいるこずを芚えおおいおください。
GitHubは理由で反応を远加したした...

+1

+1

+1

これは玠晎らしいこずです 長い数倀のリストがありたすが、倀自䜓よりも、それぞれに人間に優しいラベルを衚瀺する方がはるかに優れおいるはずです。
倉数myListOfLongs {名前トペタの倀122321312332、名前ルノヌの倀66666666}

+1

+1

+1
11534に関する曎新繰り返しパネル/行を䜿甚する堎合は動的タむトルを蚱可

+1

+111111

+1

+1

+ 1、この機胜を非垞に必芁ずしおいたす。

+1

+1

+1

+1

+1

これはMySqlずPostgreSQLで機胜したす。

もう1぀のオプションは、キヌ/倀倉数を䜜成できるク゚リです。 ク゚リは、__ textず__valueずいう名前の2぀の列を返す必芁がありたす。 __text列の倀は䞀意である必芁がありたす䞀意でない堎合は、最初の倀が䜿甚されたす。 ドロップダりンのオプションにはテキストず倀があり、わかりやすい名前をテキストずしお、IDを倀ずしお䜿甚できたす。 テキストずしおホスト名、倀ずしおIDを䜿甚したク゚リの䟋

SELECT hostname AS __text, id AS __value FROM my_host

http://docs.grafana.org/features/datasources/mysql/#query -variable

カスタム倉数は次のようにするこずをお勧めしたす。

[{
        "__text": "Server 1",
        "__value": 1
    },
    {
        "__text": "Server 2",
        "__value": 2
    }
]

たぶんJSONず呌ばれる新しいタむプですか

ありがずう@johnymachine これはPostgreSQLデヌタ゜ヌスでうたく機胜したした。

これの拡匵ずしお、倉数の__textセクションを取埗する方法はありたすか これは、グラフを繰り返す堎合に非垞に圹立ちたす。

ねえ@MGinshe 、これは私にずっおはうたくいきたすテキストは倀を䜿甚しお衚瀺されたす

image

線集このバグの最初のコンテキストを誀解したした、以䞋のコメントを無芖しおください、それは9292のためのものでした

@torkelo @nmaniwa

https://github.com/grafana/grafana/pull/12609は、ほずんどの人がここで求めおいるものを実装しおいるようですが、それが閉じられおマヌゞされない理由は䜕ですか

いいえ、その問題はたったく異なる問題に関するものですか、それずも間違った問題にリンクしたしたか

これに぀いおのニュヌスはただありたせんか さあ、2018幎です!! ありがずう

@ dmayan @ johnymachineが回答したした。 これを䜿甚できたす。

これはMySqlずPostgreSQLで機胜したす。

もう1぀のオプションは、キヌ/倀倉数を䜜成できるク゚リです。 ク゚リは、__ textず__valueずいう名前の2぀の列を返す必芁がありたす。 __text列の倀は䞀意である必芁がありたす䞀意でない堎合は、最初の倀が䜿甚されたす。 ドロップダりンのオプションにはテキストず倀があり、わかりやすい名前をテキストずしお、IDを倀ずしお䜿甚できたす。 テキストずしおホスト名、倀ずしおIDを䜿甚したク゚リの䟋

SELECT hostname AS __text, id AS __value FROM my_host

http://docs.grafana.org/features/datasources/mysql/#query -variable

カスタム倉数は次のようにするこずをお勧めしたす。

[{
      "__text": "Server 1",
      "__value": 1
  },
  {
      "__text": "Server 2",
      "__value": 2
  }
]

たぶんJSONず呌ばれる新しいタむプですか

MySQLもPostgreSQLも䜿甚しおいたせん。 これはGrafanaの機胜である必芁がありたす。 いいえ
ある皮のハック。

ありがずう

El jue。、27 desep。 de 2018 0552、Muhammad [email protected]
escribió

@dmayanhttps //github.com/dmayan回答されたした。 これを䜿甚できたす。

これはMySqlずPostgreSQLで機胜したす。

もう1぀のオプションは、キヌ/倀倉数を䜜成できるク゚リです。 ク゚リ
__textおよび__valueずいう名前の2぀の列を返す必芁がありたす。 __text
列の倀は䞀意である必芁がありたす䞀意でない堎合、最初の倀は
䜿甚枈み。 ドロップダりンのオプションには、次のこずを可胜にするテキストず倀が含たれたす
テキストずしおわかりやすい名前を䜿甚し、倀ずしおIDを䜿甚する必芁がありたす。 䟋
テキストずしおホスト名、倀ずしおIDを䜿甚しおク゚リを実行したす。

SELECT hostname AS __text、id AS __value FROM my_host

http://docs.grafana.org/features/datasources/mysql/#query -variable

カスタム倉数は次のようにするこずをお勧めしたす。

[{
"__text" "サヌバヌ1"、
"__value"1
}、
{{
"__text" "サヌバヌ2"、
"__value"2
}
]

たぶんJSONず呌ばれる新しいタむプですか

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

非垞に䟿利な機胜です。この機胜があれば、ここで倧いに圹立぀可胜性がありたす。 グラファむトは挢字を保存できないためです。 したがっお、Graphiteでは英語を䜿甚する必芁がありたすが、実際にはgrafanaダッシュボヌドに䞭囜語を衚瀺したいので、ナヌザヌ゚クスペリ゚ンスははるかに優れおいたす。

この機胜がたもなく実珟するこずを願っおいたす。

2぀の倉数を䜿甚しおID->名前のマッピングを行うこずができたした。 最初の倉数はすべおの可胜なID倀をリストし、2番目の倉数はIDに䞀臎する名前衚瀺テキストをリストしたす。 それは理想的でもきれいでもありたせんが、それはトリックを行いたす。

ネストされた倉数ず呌ばれおいるず思いたす。 そしお、倉数セレクタヌの1぀を非衚瀺にするこずができたす。

+1

+1

@FdeFabricio InfluxDBを䜿甚したしたか 䞀方の倀を倉曎するず、もう䞀方の倀が自動的に曎新されたすか もしそうなら、どのようにそれをしたすか

@ bassie1995

InfluxDBを䜿甚したしたか

はい

䞀方の倀を倉曎するず、もう䞀方の倀が自動的に曎新されたすか

はい

もしそうなら、どのようにそれをしたすか

すでに遞択されおいる倀に䞀臎するアむテムを遞択するク゚リ型倉数を䜜成したす䟋 SELECT "name" FROM playlists WHERE ("id" =~ /^$playlist_id$/) 。これで、IDを持぀倉数ず名前を持぀倉数の2぀の倉数が䜜成されたす。

@ bassie1995 @ FdeFabricioこれを逆に行うこずもできたす。

  • プレむリスト名を遞択できる衚瀺倉数぀たり、Girl Power
  • 名前からプレむリストIDを芋぀ける隠れた倉数 SELECT "id" FROM playlists WHERE ("name" =~ /^$playlist_name$/)のようなもの

このように、ナヌザヌには名前でプレむリストを遞択するオプションが衚瀺されたすが、プレむリストIDは非衚瀺になっおいたす。 プレむリストアむテムなどを怜玢するために、プログラムでプレむリストIDにアクセスするこずもできたす。

ただし、PostgreSQL / MySQLデヌタ゜ヌスの__nameおよび__value構文は、id-> nameのあいたいさを防ぎ、必芁なデヌタベヌスク゚リの数を枛らすため、䟝然ずしお理想的です。 これは基本機胜IMOである必芁がありたす。

䞊蚘の@johnymachineのコメントに基づいた別の回避策を芋぀けたした。 䞀郚のデヌタ゜ヌスではこれがサポヌトされおいたす。 デヌタ゜ヌスでサポヌトされおいない堎合は、MySQLデヌタベヌスを䜜成し、そこにデヌタを远加しお、__ valueず__textを返すク゚リを䜜成できたす。 これは、デヌタが静的である堎合、私の堎合は状態地理的状態で機胜したす。 カスタムずしお定矩された倉数に察しおこの機胜が必芁な堎合は、これが適切な回避策であり、ずにかくより良い解決策になるず思いたす。 これにより、すべおの倉数リストを1぀の堎所に保存し、より簡単に倉曎できたす。 唯䞀の欠点は、MySQLをむンストヌルする必芁があるこずです。

SELECT SingleChar AS __value、ShortName AS __text FROMTSDB。 State

この゜リュヌションは、繰り返されるグラフ、繰り返される行、および倉数に耇数遞択がある堎合に機胜するこずを远加する必芁がありたす。 䞊蚘の2぀の倉数を䜿甚しお「GirlPower」を衚瀺する䟋は、これらの状況では機胜したせん。

私はちょうどその問題をいじっおいお、ややハッキンシュの回避策を芋぀けたした...
ハッシュが必芁でした。Perl衚蚘では次のように蚘述されおいたす。
Perl %units = ( 'ÎŒSv/h' => 1.0, 'mrem/h' => 0.1 );
ダッシュボヌド倉数Type  Custom 、 Values separated by comma  mrem/h, ÎŒSv/hを䜜成し、 JSON Modelを次のように線集したした。
JSON { "allValue": null, "current": { "tags": [], "text": "mrem/h", "value": "0.1" }, "hide": 0, "includeAll": false, "label": null, "multi": false, "name": "units", "options": [ { "selected": true, "text": "mrem/h", "value": "0.1" }, { "selected": false, "text": "ÎŒSv/h", "value": "1.0" } ], "query": "mrem/h, ÎŒSv/h", "skipUrlSync": false, "type": "custom" }

これはしばらくの間機胜したすが、GUIを介しおダッシュボヌドを線集するず、非機胜状態に戻りたす-|

デヌタを提䟛できる別のシステムがある堎合にこれを回避するための別のオプション

JSONデヌタ゜ヌスプラグむンを䜿甚したす。私は次を䜿甚しおいたす https //grafana.com/plugins/simpod-json-datasource

必芁なデヌタがある䞀郚のシステムには、 /ヘルスチェック゚ンドポむントず/search゚ンドポむントのみを実装したす。 /search゚ンドポむントは、 [{ "text": "A Human Name", "value": "123456" }, ...]のようなJSONを返す必芁がありたす。 textプロパティは、倉数遞択ドロップダりンに衚瀺されるものになり、 valueは、メトリックク゚リで䜿甚されるものになりたす。

次に、この新しいデヌタ゜ヌスに察しおク゚リを実行するようにダッシュボヌド倉数を蚭定したす。これはちょっずハックですが、デヌタ゜ヌスのtargetフィヌルドを䜿甚しお、これを䜿甚する耇数のデヌタセットがある堎合に䜕を返すかをバック゚ンドに指瀺できたす。

これに+1。 私はこれを行う方法を本圓に望んでいたすが、バック゚ンドに䟝存しない方法です私たちはグラファむトを䜿甚しおいたす。

+1有効な゜リュヌションはありたすか

@ BlackRider97䞊蚘のコメントをご芧ください。PostgreSQLおよびおそらくMySQL、MSSQLなどにはいく぀かの実甚的な゜リュヌションがありたす。

解決策1 https //github.com/grafana/grafana/issues/1032#issuecomment -409124505

解決策2 https //github.com/grafana/grafana/issues/1032#issuecomment -453242766

@thinropeからの回避策を適切に実装するこずは、本圓に゚レガントな修正です。
カスタム倉数でJSONを䜿甚できる堎合、たたは倉数タむプが「JSON」である堎合、ハッキングなしでこれを解決でき、欠点はありたせん。

+1これに関する曎新はありたすか

+1

+1

これは間違いなく必須の機胜です。
ホスト名に正芏衚珟を䜿甚しお、倉数を䜿甚しお䞀郚のホストをフィルタリングしたす。 サヌバヌにはホスト名のパタヌンが含たれおいるため、特定のグルヌプのすべおのサヌバヌのリストを取埗するための正芏衚珟を䜿甚できたす。 醜い正芏衚珟を衚瀺する代わりに、ドロップダりンメニュヌのラベルずしお「グルヌプAのサヌバヌ」のようなきれいな名前を衚瀺したいず思いたす。

これをカスタム倀に入力する方法は、次のように簡単です。
label1:value1, value2, label3:value3, label5:value5

ラベルはオプションです。 :が文字列に存圚する堎合、$ :の前のすべおがラベルであり、埌のすべおが倀です。
,文字の堎合ず同様に、ラベル名たたは倀で必芁な堎合は、 :を゚スケヌプする方法が必芁です。

デヌタを提䟛できる別のシステムがある堎合にこれを回避するための別のオプション

JSONデヌタ゜ヌスプラグむンを䜿甚したす。私は次を䜿甚しおいたす https //grafana.com/plugins/simpod-json-datasource

必芁なデヌタがある䞀郚のシステムには、 /ヘルスチェック゚ンドポむントず/search゚ンドポむントのみを実装したす。 /search゚ンドポむントは、 [{ "text": "A Human Name", "value": "123456" }, ...]のようなJSONを返す必芁がありたす。 textプロパティは、倉数遞択ドロップダりンに衚瀺されるものになり、 valueは、メトリックク゚リで䜿甚されるものになりたす。

次に、この新しいデヌタ゜ヌスに察しおク゚リを実行するようにダッシュボヌド倉数を蚭定したす。これはちょっずハックですが、デヌタ゜ヌスのtargetフィヌルドを䜿甚しお、これを䜿甚する耇数のデヌタセットがある堎合に䜕を返すかをバック゚ンドに指瀺できたす。

私はこの実装を行い、それは私のために機胜したすが、トレンド凡䟋のラベル付けに固執しおいたす... ID数倀たたは定矩されおいないか、その他の意味がありたせん。
アドバむスできたすか

M

+1

たた、䌚瀟のGrafanaで@ mbell697によっお蚘述されたJSONハックも䜿甚しおいたす。 しかし、私芋では奇劙な正芏衚珟の問題があるようです。

怜玢デヌタが次のようになっおいるGraphiteク゚リに必芁なグルヌプを提䟛する小さなPythonフラスコアプリをセットアップしたした

@app.route('/search', methods=['POST'])
def search():
    data = [
        {"text": "fs-servers", "value": "{FS-server-1,FS-server-2,FS-server-3}"},
        {"text": "db-a-servers", "value": "{db-server-1,}"},
        {"text": "db-b-servers", "value": "{db-server-2,db-server-3}"}
    ]
    return jsonify(data)

そのため、ダッシュボヌドでjson-sourceを䜿甚しお「group」ずいうク゚リ倉数を䜜成し、 /fs-.*/を䜿甚しおregex-fieldで「fs-servers」グルヌプをフィルタリングしようずしたしたが、これは機胜したせん予想どおり、いじくり回した埌、正芏衚珟が「テキスト」フィヌルドではなく「倀」フィヌルドに䜕らかの圢で適甚されおいるこずに気付きたした。 誰かがおそらくいく぀かの回避策やアむデアがありたすか

+1

+1

このための芁件に぀いおの私の芋解

私たちの堎合、同じものの2぀のバリ゚ヌションを考えたす。 私たちが欲しいのは本質的に゚むリアスです。 どちらの堎合も、ダッシュボヌドの所有者は、゚ンドナヌザヌが理解しやすいテンプレヌト倉数リストをナヌザヌに提䟛したいず考えおいたす。 ただし、ク゚リで䜿甚される倀は基になる倀です。

䟋1-単玔な1察1の名前倉換。 したがっお、この堎合、囜コヌドの数倀がメトリック倀ずしお公開されおいたす。 しかし、数倀コヌドを芚えおいる人がいるこずを知っおください。 したがっお、「US」たたは「Canada」を衚瀺したす

{"US" == "01"}
{"カナダ" == "02"}

「カナダ」が遞択されおいる堎合、ク゚リに枡されるテンプレヌト倉数倀は「02」です。

䟋2-は1察倚のマッピングです。 内郚的には、展開の段階がありたす。たずえば、s0、s1、s2、s3、s4です。 ただし、゚ンドナヌザヌはこれを「dev、beta、prod」ずしお䜿甚できたす
したがっお、圌らはそれらを次のようにマッピングしたいず考えおいたす。

{"dev" == ["s1"]}
{"beta" == ["s2"、 "s3"]}
{"prod" == ["s4"、 "s5"、 "s6"]}たたはそれ以䞊の堎合 "prod" == s [456]

したがっお、「prod」が遞択されおいる堎合、「s4、s5、s6」がク゚リに枡されたす

ク゚リの芳点から䟋2を䜿甚、倉数名はstageVarです。
メトリックタグ名はステヌゞです。

呌び出しのようなaliasByの必芁性はあたりありたせんが、次のようなものがありたす。
stage =〜$ {stageVar。 valueregex }
゚むリアス$ stageVar.label

遞択したテンプレヌト倉数倀で結果をフィルタリングしたす。 誰かがaliasBy関数のようなものでそれを䜿甚しようずする可胜性は確かにありたすが、それが構文゚ラヌである堎合は問題ありたせん。 単䞀の倀を期埅する関数に枡される配列の倉換を魔法のように修正するこずは期埅しおいたせん。

マッピングに関しおは、ナヌザヌに静的に定矩しおもらうだけで十分だず思いたす。
理想的には、MTにク゚リを実行しお、マッピングする必芁のある倀のリストたずえば、「01」、「02」、「03」を取埗するず、マッピング/゚むリアスを簡単に远加できたす。 マップされおいない倀は「デフォルト」バケットに入りたす。

+1

+1

これが含たれおいないこずに非垞に驚いおいたす。私はこの「明癜な」こずをどのように行うかを理解するためにかなりの時間を費やし、最終的には存圚しないこずを発芋するためにここに自分の道を芋぀けたした。

䞊蚘のいく぀かで説明されおいるように動的に曞き盎す機胜は玠晎らしいでしょう。 ただし、遞択肢を単䞀たたは耇数の遞択肢の結果に静的にマッピングする「カスタム」フィヌルドの拡匵バヌゞョンである短期的なハックたたは氞続的な「簡単な」モデルにも満足しおいたす。

この䟋は囜コヌドです。 囜ごずではなく、地理的な地域に基づいおシステムのクラスタヌを衚瀺したい堎合がよくありたす。 ただし、Prometheusサヌバヌには囜コヌドのみをキヌずしお保存しおいたす。 したがっお、珟時点では、北米のすべおのシステムを衚瀺する堎合は、100か囜近くからク゚リベヌスのオプションリストからUS、CA、MXを手動で遞択する必芁がありたす。 私が分析を行うためにペヌロッパ、アゞア、たたはアフリカのすべおの囜を遞択するのにどれだけの時間を費やしたかさえあなたに蚀うこずはできたせん。 地域ごずにたったく異なるダッシュボヌドを蚭定するこずはほが䟡倀がありたす。これはばかげおいたすが、グラフをハヌドコヌディングする以倖の問題を解決する唯䞀の方法です。 マッピングを䜿甚しおたったく新しいデヌタベヌスを䜜成しおから非衚瀺のク゚リを実行するこずも、理想からはほど遠いようです。

私の熱の倢
これは、可胜な新しいタむプの倉数ずしおの「カスタムリスト」オプションのように思われたす。 カスタムリストを遞択するず空になりたすが、珟圚の「カスタム」モデルず非垞によく䌌おいたす。 「远加」ボタンが衚瀺されたす。 [远加]をクリックするず、[衚瀺倀]ず[怜玢倀]の2぀のフィヌルドの入力配列が䜜成され、それぞれに入力できたす。[衚瀺倀]は、ナヌザヌが遞択リストに衚瀺したいものになりたす。ケヌス、「北米」。 次に、「怜玢倀」はク゚リに衚瀺されるものになりたす。この䟋では、北米の堎合は「us、ca、mx」になりたす。 い぀でも、「削陀」アむコンゎミ箱は個々の行をリモヌトしたす。 [远加]ボタンをもう䞀床クリックするず、ナヌザヌがオプションのリストを完了するたで、新しいペアリングが䜜成されたす。 既存のカスタムモデルず同様に、[耇数倀]および[すべお遞択]オプションはそのたた残りたす。

これが含たれおいないこずに非垞に驚いおいたす。私はこの「明癜な」こずをどのように行うかを理解するためにかなりの時間を費やし、最終的には存圚しないこずを発芋するためにここに自分の道を芋぀けたした。

MySQLデヌタベヌスを䜜成するこずでこれを解決したした。ドロップダりンに必芁な項目ペヌロッパ、北アメリカなどを含むテヌブルを䜜成したす。2番目のフィヌルドには、䞀臎させたい゚ントリに䞀臎する正芏衚珟がありたす。 次に、MySQLをデヌタ゜ヌスずしお远加し、それらを䜿甚しお倉数を䜜成したす。 これはハックですが、実際には非垞にうたく機胜したす。 私はあなたがやろうずしおいるこずずほずんど同じようにそれを䜿いたす。

私は巧劙なハックに感謝したすが、私たちにずっおそれは実際には解決策ではありたせん。 たったく新しいデヌタベヌスをセットアップしおMySQLをたったく䜿甚しないため、操䜜䞊これは䞍可胜です、非垞に静的な単玔なキヌ/倀の眮換を実行するこずは、倚くの䜜業のように思えたす。

私はこれに぀いおもう少し考えおいたした、そしお私が䞊で説明したものよりもこの機胜を提䟛するさらに゚レガントな方法がありたす。 私はそれを「可倉マクロ」ず呌んでいたす。 これもカスタムリストのように芋えたすが、管理者がこれらのマクロの1぀たたは耇数を遞択するず、指定された倉数が蚭定され、指定された倀が既存の倀のセットに远加されるこずを指定できたす。 これは完党にUI駆動型モデルであり、実際の倉数の抂念をたったく倉曎したせん。既存の倉数の䞊にオヌトコンプリヌトシュガヌレむダヌを䜜成するだけです。 これにより、䜜成やク゚リぞの統合に远加の倉数を必芁ずせずに、䞋䜍互換性が確保されたす。

倉数を蚭定するマクロを䜿甚するず、ナヌザヌは遞択されおいる倀を確認でき、以前のコメントのように個別の倉数を䜜成する代わりに、ナヌザヌは各倉数を開いお遞択範囲たたはデヌタを衚瀺/操䜜できたす。意味する。 これははるかに盎感的です。

䟋

したがっお、「North America-Primary Cluster」ずいう倉数マクロは、「Country」倉数を「us、ca、mx」に蚭定し、「Cluster」倉数を「primary」に蚭定したす。 これらの蚭定は、名前付きの各倉数をプルダりンするず衚瀺されるので非衚瀺の堎合は非衚瀺になりたす、[マクロ倉数]プルダりンに再床觊れない限り、[囜]リストに囜を远加たたは削陀できたす。

おそらく、「蚭定前に名前付き倉数をクリアする」ずいうブヌル倀があるため、このマクロの遞択リストに倉曎が加えられるず、指定された倉数の他の蚭定がすべおクリアされたす。 これは、以前に蚭定されたものを含める可胜性があるこずが明らかでないリストに圹立぀可胜性がありたす。 耇数の倉数マクロオプションが遞択された堎合、特定の倀の競合する蚭定がある堎合は、リストの最埌のオプションが「優先」されるず思いたす。 その問題を回避する方法はありたせん。 このクリアリングアクションは倉数ごずに指定する必芁があるこずは議論の䜙地がありたすが、それは少し雑然ず聞こえるようです...しかしそれはそうですか

これが私の架空の䟋です。ここでは、「囜」ず「クラスタヌ」の既存の倉数がありたす。

可倉マクロ名リヌゞョン

名前1北米-プラむマリクラスタヌ
蚭定する前に名前付き倉数をクリアしたすY
倉数1囜
倀1us、ca、mx
倉数2クラスタヌ
倀2プラむマリ

Name2北欧-二次クラスタヌ
蚭定する前に名前付き倉数をクリアしたすY
倉数1囜
倀1se、fi、no、dk、is
倉数2クラスタヌ
倀2セカンダリ

私は巧劙なハックに感謝したすが、私たちにずっおそれは実際には解決策ではありたせん。 たったく新しいデヌタベヌスをセットアップしおMySQLをたったく䜿甚しないため、操䜜䞊これは䞍可胜です、非垞に静的な単玔なキヌ/倀の眮換を実行するこずは、倚くの䜜業のように思えたす。

私はあなたがこのようなこずを蚀うだろうず思っおいたした。 珟実には、ハックを芁求され、このハックは問題を解決したす。セットアップは難しくなく、将来的に元に戻すこずも難しくありたせん。 新しいデヌタセットを远加し続けるので、MySQLがそこにあるず非垞に䟿利だず思いたす。これは、それらを远跡しお曎新するのに䟿利な堎所です。 考えおみれば、これらのデヌタセットを耇数のダッシュボヌドで䜿甚し、それらを䞀元的に維持したい堎合は、どこかに保存する必芁がありたす。 時系列デヌタベヌスにそれらを保存できない堎合は、それらを保存するための蚭定が必芁です。 したがっお、MySQLを䜿甚するこずは実際には完党に理にかなっおいたす。 远加されたボヌナスは、MySQLの䜜成を非垞に簡単に自動化できるこずです。

PostgreSQLを䜿甚しおいる堎合は、マッピング甚の実際のテヌブルを䜜成する必芁はありたせん。次のようなこずができたす。

SELECT *
FROM
(
    VALUES
        ('London server 1', 'london_srv_1'),
        ('London server 2', 'london_srv_2'),
        ('New York server 1', 'ny_srv_1'),
        ('New York server 2', 'ny_srv_2')
) AS t (__text, __value)

ただし、数倀では機胜したせん。

SELECT * FROMVALUES 'OK'、 '0'、 'E​​RROR'、 '1'AS t__ text、__ value

ダッシュボヌドをロヌドする堎合

imagen

そしお別のパラメヌタを遞択するずき

imagen

遞択した堎合OK + ERROR

imagen

数倀が必芁な堎合は䞀重匕甚笊を削陀する必芁がありたす。そうでない堎合は、テキストずしお解釈されたす。

SELECT * FROM ( VALUES ( 'OK', 0), ( 'ERROR', 1) ) AS t (__text, __value)

答えおくれた@GlennMatthysglennに感謝したすが、問題が発生しおいる堎所はすでに芋぀かりたした。

SELECT * FROMVALUES 'OK'、0、 'Warning'、1、 'Critical'、2AS t__ text、__ value

耇数倀の構成

imagen

それは起こりたす
imagen

3぀の州を遞択する
imagen

そしおマルチバリュヌオフ

imagen

GlennMatthys-あなたの゜リュヌションは完璧です、ありがずう

MySQLの堎合
SELECT * FROM ( VALUES row('a', 1), row('b', 2) ) AS t (__text, __value)

Mariadbはどうですか 私には機胜したせんmariaDBバヌゞョン10.5.5

SELECT * FROM ( VALUES row('a', 1), row('b', 2) ) AS t (__text, __value);
ERROR 1064 (42000)..............

たたは前のもの

SELECT * FROM ( VALUES ( 'OK', 0), ( 'Warning', 1), ('Critical', 2) ) AS t (__text, __value);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your 
MariaDB server version for the right syntax to use near '(__text, __value)' at line 1

Valuesステヌトメントは䜿甚できなくなったようです...

それずも私が間違っおいるこずは他にありたすか

@radoeka叀いMariaDB / MySQLの堎合

SELECT * FROM
(
    SELECT 'London server 1' AS '__text', 'london_srv_1' AS '__value'
    UNION ALL SELECT 'London server 2', 'london_srv_2'
    UNION ALL SELECT 'New York server 1', 'ny_srv_1'
    UNION ALL SELECT 'New York server 2', 'ny_srv_2'
) AS t;

@GlennMatthysすごいすごいすごいすごい、なんお迅速な反応でしょう そしお、これは機胜したす。
かなり新しいバヌゞョンのmariadbを実行しおいるず思いたしたが、そうではありたせん2か月前のLinuxディストリビュヌションを䜿甚。
ありがずう。

これはPrometheusではサポヌトされおいないようです。

27829ずしおこの問題を再床開くず、静的デヌタの堎合にのみこれが解決されたす。

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