Elixir:Kitto、ダッシュボード(Dashboard)を作成するフレームワーク
KittoはElixir/Reactで開発され、ダッシュボードを作成するためのフレームワークです.
用途
例えば、ゲームサーバにおいて、
必要なテクノロジー React.js Elixir
インストール
要求 Elixir: 1.3 Erlang/OTP: 19
Dashboardの作成
配置
インストール依存
サーバの起動
ゲージグリッド
Kittoは複数のダッシュボードをサポートする.各ダッシュボードはパス
1つのダッシュボードはReactコンポーネントを含むGridsterメッシュで構成されています
次のコードクリップは、ダッシュボードに簡単なテキストコンポーネントを配置する.
最も重要なデータ属性は次のとおりです. を選択 .
ジョブ
ジョブ・ファイルの構造は次のとおりです.
上記のコードは、監視する(
Widgets
Widget例(
各Widgetは、
配置
プロジェクトのコンパイル
製品環境用のリソースのコンパイル
サーバの起動
プロジェクトには2つの例が付属しています
ディレクトリ構造 .
用途
例えば、ゲームサーバにおいて、
Kitto
は、SSE
(サーバイベントフロー)を介して管理サーバに接続するサーバの動作状態指標を取得し、リアルタイムモニタリングの目的を達成する.必要なテクノロジー
インストール
mix archive.install https://github.com/kittoframework/archives/raw/master/kitto_new-0.2.3.ez
要求
Dashboardの作成
mix kitto.new
配置
インストール依存
mix deps.get && npm install
サーバの起動
mix kitto.server
ゲージグリッド
Kittoは複数のダッシュボードをサポートする.各ダッシュボードはパス
/dashboards/
で示す.1つのダッシュボードはReactコンポーネントを含むGridsterメッシュで構成されています
dashboards/sample
のディレクトリの下にダッシュボードのサンプルコードがある.次のコードクリップは、ダッシュボードに簡単なテキストコンポーネントを配置する.
最も重要なデータ属性は次のとおりです.
data-widget
使用するWidget.data-source
Widgetのデータソースを指定する.ジョブ
mix kitto.new
を使用して計器盤を作成すると、jobs/
ディレクトリの下にいくつかのサンプルジョブが存在する.ジョブ・ファイルの構造は次のとおりです.
# File jobs/random.ex
use Kitto.Job.DSL
job :random, every: :second do
broadcast! :random, %{value: :rand.uniform * 100 |> Float.round}
end
上記のコードは、監視する(
supervised
)プロセスを生成し、このプロセスは毎秒1つのイベントを生成する.Widgets
widgets/
のディレクトリにあるWidgetsはWebpackによって自動的にコンパイルされ、計器ディスクにロードする.Widget例(
widgets/text/text.js
)import React from 'react';
import Widget from '../../assets/javascripts/widget';
import './text.scss';
Widget.mount(class Text extends Widget {
render() {
return (
{this.props.title}
{this.state.text || this.props.text}
{this.props.moreinfo}
);
}
});
各Widgetは、
data-source
の属性で指定するソース更新データを用いる.配置
プロジェクトのコンパイル
MIX_ENV=prod mix compile
製品環境用のリソースのコンパイル
npm run build
サーバの起動
MIX_ENV=prod mix kitto.server
プロジェクトには2つの例が付属しています
http://localhost:4000/dashboards/sample
http://localhost:4000/dashboards/jobs
ディレクトリ構造
assets
-すべてのダッシュボードで使用されるJavascript、CSSファイル.webpack.config.js
ファイルを参照して、それらがどのようにロードされているかを理解します.dashboards
-ダッシュボード情報を記述するための.html.eex
ファイル.jobs
-データ検索の実現.Widgetsにデータを提供するための.lib
-Jobが使用するElixirモジュール.widgets
-各WidgetのすべてのHTML、SCSS、Javascriptはここに置かれています.