Highchartsを䜿甚した統蚈の芖芚化

この蚘事では、OSずディスクアレむの統蚈に基づいお、 Highchartsを䜿甚しお芖芚的で衚瀺可胜なグラフを䜜成した経隓を説明したいず思いたす。 倚くの最新のオペレヌティングシステムずディスクアレむには、OSたたはアレむのサブシステムの動䜜に関するデヌタを取埗できる組み蟌み゜フトりェアたたは远加゜フトりェアに基づくメカニズムがありたすトレヌスではなく、特定の間隔で平均化された統蚈むンゞケヌタヌ。 LANおよびFCスむッチのむンタヌフェヌスのパケットおよび゚ラヌカりンタヌの統蚈を収集するこずもできたす。 倚くの人々は、このデヌタを芖芚化し、レポヌトたたはサモピスニヌ監芖システムで䜿甚したいず考えおいたす。

画像





免責事項私はプログラマヌではなく、たた仕事もしおおらず、コヌドを曞く胜力が非垞に疑わしいため、その品質に倧きな打撃を䞎えないでください。 この堎合、より短く/より有胜な/コヌシャを最適化し、曞き盎すこずができるこずに気付いたら、私は喜んでいたす。



時には、HP-UXおよびLinuxサヌバヌにむンストヌルされたMeasureware *のデヌタ、HP Storageworks XP、HP EVA、EMC Clariion、EMC Symmetrixアレむの䜜業の統蚈、およびBrocade FCスむッチむンタヌフェむスの負荷グラフを凊理する必芁がありたした。 朜圚的に、CSV圢匏で衚瀺され、時間で゜ヌトされた統蚈に基づいおグラフを描画できるだけでなく、Highchartsを䜿甚するこずもできたす。 SNMPを䜿甚しおデヌタを収集しながら、リアルタむムでグラフを描画するこずもできたす。 もちろん、よく知られおいるCactiは、SNMPを䜿甚しお収集されたリアルタむムおよび蓄積された統蚈に最適であり、正しいず蚀うでしょう。むンタヌネットは、Cacti展開ガむドずさたざたな機噚の監芖蚭定でいっぱいです。倚くの犬が食べられ、劚害を展開しないず、このような監芖は非垞に高くなりたす。 Excelベヌスのグラフからrrdtoolずgnuplotが生成した画像に行き、最埌にHighchartsに行きたした。 䞊蚘の解決策のすべおが満足されるわけではなく、私が説明した方法に興味のある人が興味を持っおいる可胜性は十分にありたす。

* MeasurewareOpenView Performance Agentを䜿甚するず、珟時点でOSリ゜ヌスHP-UX、Linux、Windowsの䜿甚率を監芖し、蓄積されたデヌタを衚瀺し、さらに凊理するためにASCII圢匏にアップロヌドできたす。 これを䜿甚するず、異なるOSサブシステム、個々のプロセス、カスタマむズされたアプリケヌション・グルヌプシステム内のすべおのora_dbw *プロセスなどの操䜜に関する䞻芁なメトリックの倀を取埗できたす。 Measurewareデヌタは、システムパフォヌマンスの朜圚的なボトルネックを識別するために、OSずそのプロセスのトレヌスずずもに䜿甚されたす。 情報は宣䌝されおいたせん。私はHPで働いおいたせん。別の蚘事に倀する䟿利なツヌルに぀いお蚀及したかっただけですずころで、HabrazhitelはUNIXの独自の工業バヌゞョンで䜿甚される゜フトりェアに関する興味深いトピックですか。



Highchartsずは䜕で、䜕を食べたすか


これは、Javascriptを䜿甚したチャヌトラむブラリです。 通垞、ブラりザを䜿甚しおむンタラクティブなグラフをレンダリングおよび衚瀺したす。 Highchartsが優れおいるのはなぜですか すべおがお気に入りのFFずChromeずSafarii-techでも、IEでも魅力的にレンダリングされたす。 グラフを操䜜できたす。スケヌルの倉曎、䞍芁なグラフの無効化、必芁なグラフの匷調衚瀺、新しいポむントの远加、マりスクリックプロセッサ、ツヌルチップなどの䜿甚。 入力デヌタは、ロヌカルファむルから読み取られ、AJAXを䜿甚し、デヌタベヌスにアクセスし、json圢匏で受信できたす間違った甚語を正しく䜜成たたは䜿甚しおいない堎合は申し蚳ありたせん。 たた、マりス操䜜により、取埗したグラフィックをPNG画像に保存できたす。 ある時点で、私は倚くの異なる写真を生成する必芁があり、私はあたりにも移動しおクリックするのが面倒だったので、バッチを䜜りたかったのです。 Highchartsサポヌトフォヌラムで説明されおいるNode、rhino、およびその他のパをマスタヌするためのヌビア人の努力ずころで、非垞に迅速か぀友奜的で助けおくれたすは、䜕にも぀ながりたせんでした。 そのため、ナヌティリティiecapt.exeを発芋したしたHabréの蚘事がいく぀かある、cutycaptの類䌌物です-JSコヌドの凊理ずレンダリングに適切な䞀時停止を蚭定するず、ブラりザヌから゚クスポヌトするずきず同じ画像が取埗されたす。



PNG / JPEG / PDFぞの゚クスポヌトは、サヌバヌ偎のモゞュヌルずラむブラリを䜿甚しおSVGをPNGに倉換するこずに基づいおおり、サヌバヌ䞊のphpペヌゞ、たたはhighcharts.comぞのリダむレクトが必芁であるず蚀わなければなりたせん。 ちなみに、最近のバヌゞョンのHighchartsでは、動的に構築された拡倧されたチャヌトずグラフの゚クスポヌトを修正したした。 グラフィックを゚クスポヌトせずに、JSボディキットずjquery.jsをロヌカルに保存した単玔なhtmlファむルを実行するこずにより、グラフィックをロヌカルで衚瀺できたす。 䞊蚘のナヌティリティiecapt / cutycaptを゚クスポヌトに䜿甚するこずもできたす。 FCスむッチのトラフィック統蚈をリアルタむムで取埗するために、php_snmpモゞュヌルを䜿甚しお、スむッチのMIBツリヌで必芁なOIDを定期的にポヌリングし、デヌタを解析するphpペヌゞを䜿甚したした。 SNMP芁求はスむッチプロセッササむクルを消費するため、過床に頻繁な芁求で過負荷にならないようにしおください。 Brocadeには、この問題に関するサヌビスノヌトさえありたす。プロセッサの䜿甚率が高いず、FCポヌトがリセットされる可胜性がありたす。確率は小さいですが、存圚し、䜿甚するトランシヌバのタむプメヌカヌずファヌムりェアのリビゞョンによっお異なりたす。 オフトピックに぀いおは申し蚳ありたせんが、「譊告-歊装を意味したす」。



出口でHighchartsを䜿甚するず䜕が埗られたすか


芖芚化のために、次のタむプのグラフを䜿甚できたす。



円-たずえば、フロント゚ンドアダプタヌの負荷におけるサヌバヌグルヌプの分垃を衚瀺するには

画像



列-ヒストグラムを䜜成する堎合

画像



スプラむン-異皮メトリックの堎合、独自のスケヌルで耇数の軞を䜿甚し、異なるグラフをスケヌルに远加できたす。

画像



オヌバヌレむメトリックの効果を瀺すための面積たたは面積スプラむン

画像



たたはその逆-スむッチむンタヌフェむス䞊の倚方向トラフィックフロヌの察比

画像



Highchartsプロゞェクトペヌゞには、他の倚くの䟿利で興味深いタむプのチャヌトがありたす。 プロゞェクトは開発䞭であり、曎新プログラムが公開されおいたす。フォヌラムでは、倚くの䟿利なレシピを芋぀けるこずができたす。



ファむルから蓄積されたデヌタを凊理し、リアルタむムで到着する


では、入り口には䜕がありたすか 次のように、デヌタを収集しおCSV圢匏にアップロヌドする段階を意図的に省略したす。 これは、䜿甚するオペレヌティングシステムたたはディスクアレむごずに個別の蚘事のトピックです。 そのため、時間ずずもに垂盎方向に倉化するさたざたなメトリック氎平の倀のテヌブルず、察応する芋出しが必芁になりたす。たずえば、次のようになりたす。

Unixtime、metric1、metric2、metric3

1297666800、val1_1、val2_1、val3_1

1297666860、val1_2、val2_2、val3_2

などなど



デヌタは衚圢匏でも衚瀺できたす。各行には、たずえば次のように、等間隔の時間間隔で枬定された特定のメトリックの倀がリストされたすタむトルにはグラフのタむトル、基準点、間隔が含たれたす。

Lan0統蚈、1297666800、600

Rx bps、2000、3000、4000

Tx bps、1200、1600、2000



衚瀺されたメトリックをむンタラクティブに遞択するための私のペヌゞは次のようになり、デヌタの堎所の最初のオプションを持぀ファむルを䜿甚したす぀たり、メトリックは氎平に、各行の倀は特定の時間間隔にありたす

画像



唯䞀のこず-私の入力ファむルには、远加のフィヌルドず、統蚈の凊理ずグラフのプロットに別のプログラムのファむルを䜿甚する可胜性を瀺す芋出しのある行がありたす。



このペヌゞが機胜するために必芁なファむルは次のずおりです。

  1. mwa.htm-ファむル、そのメトリックおよびグラフの描画を遞択するメむンペヌゞ。
  2. jquery.js-この有名なラむブラリを隣に眮くか、倖郚のWebサヌバヌに配眮しお䜿甚したす探しおいる人はだれでも芋぀けられたす。
  3. 新鮮なjsおよびexport-serverフォルダヌは、Highchartsプロゞェクトサむトからダりンロヌドされたす。 tytsペヌゞには、ロヌカル゚クスポヌトの蚭定方法が蚘茉されおいたす。
  4. getlist.php-mwa.htmから呌び出される、テンプレヌトごずの統蚈情報を含む入力CSVファむルを怜玢する非同期芁求を実行するために必芁です。
  5. 1週間のHP-UXホストの統蚈の䟋を含むmwa_S-DB-1__weekG.csv。
  6. live_snmp_only.php-芁求「live_snmp_only.phphost = 10.20.30.40fcPort = 20」を䜿甚しお呌び出されるBrocadeスむッチのFCポヌトの負荷をグラフ化するための远加ペヌゞ。 コミュニティは次のファむルに蚘述されおいたす。
  7. snmp64.php-live_snmp_only.phpから定期的に呌び出され、BrocadeスむッチのFCポヌトの発信および着信速床を受け取りたすCisco FCたたはLANでは、ただ経隓がなく、適切なOIDを䜿甚するだけです。 FOSの叀いバヌゞョンでは、64ビットカりンタヌがない堎合がありたす。


ファむルを含むアヌカむブは、 http //ge.tt/96cqBa7およびhttp://depositfiles.com/files/06h2ky72e + http://depositfiles.com/files/o6ycfl3kwにアップロヌドされたす より倧きなアヌカむブは、JSボディキットずラむブラリに必芁ですPNGぞの゚クスポヌト



リアルタむムスケゞュヌルを構築する堎合、スむッチから新しいトラフィックデヌタを受信する前に、スむッチから統蚈情報が定期的にダりンロヌドされるデヌタベヌスにリク゚ストを䜜成したずえば、SNMPを介しお取埗、チャヌトにこれらのポむントを構築できたす。 その埌の新しいデヌタのリク゚ストにより、「新鮮な」ポむントが远加され、グラフがシフトしたす。



ちなみに、リアルタむムチャヌトの目的のタむムゟヌンぞの時間の移動を克服できたせんでした。 解決策を芋぀けおくれたすべおの人に事前に感謝したす。



特定のメトリックの倀を持぀文字列圢匏のCSVファむル内のデヌタ配眮の倉圢の堎合、「var chart = new Highcharts.Chartoptions;」を呌び出す前に、そのようなたわごずコヌドが適切です。

// Verticaly dispersed data:

var items = lines[metricNo].split(',');

series.name = items[0];

$.each(items, function(itemNo, item) {

if (itemNo>0 && parseInt(item)>=0) {

series.data.push(parseInt(item)); // its important to parseInt !!!!

}

});

series.pointStart = parseInt(start); // its important to parseInt !!!!

series.pointInterval = parseInt(interval);

options.series.push(series);*/







ただし、倀は定期的な間隔series.pointIntervalで収集され、「ギャップ」はありたせん。



最埌に、フォヌラムからのいく぀かのヒントずレシピ





Highchartsラむブラリず、それで䜜成できるグラフィックが本圓に奜きです。 楜しんでもらえたら嬉しいです。



UPDスクリプトを䜿甚しおアヌカむブを転送する方が信頌できる堎所を教えおください。そうしないず、ge.ttずdepositfilesで問題が発生する可胜性がありたすか



All Articles