テーブルは、New Relic アプリケーションでデータを表示する一般的な方法です。 たとえば、クエリビルダーを使用すると、 NRQLクエリからテーブルを作成できます。
テーブルをより細かく制御する必要がある場合でも、サードパーティのデータをインポートする場合でも、New Relic アプリケーションに独自のテーブルを構築できます。
このガイドでは、さまざまな New Relic コンポーネントを使用してサンプル テーブルを構築します。
あなたが始める前に
New Relic One CLI をまだインストールしていない場合は、 New Relic のクイックスタートを実行してください。 このプロセスにより、API キーも取得されます。
さらに、このガイドの手順を完了するには、GitHub アカウントと、マシンにインストールされている Node.js が必要です。
サンプルアプリケーションのクローンを作成してセットアップする
GitHub からnr1-how-toサンプル アプリケーションをローカル マシンにクローンします。 次に、アプリ ディレクトリに移動します。
サンプル アプリではテーブルを試すことができます。
$git clone https://github.com/newrelic/nr1-how-to.git$cd nr1-how-to/create-a-table/nerdlets/create-a-table-nerdlet
index.js
ファイルを編集し、例に示すようにthis.accountId
アカウント IDに設定します。
export default class Nr1HowtoAddTimePicker extends React.Component { constructor(props){ super(props) this.accountId = YOUR_ACCOUNT_ID; } ...}
デモアプリケーションを実行する
ディレクトリをnr1-how-to/create-a-table
に戻します。 デモ アプリケーションをロードする前に、 New RelicOne CLI を呼び出して UNIQUEID を更新する 必要があります。
アプリに新しい UUID を割り当てたら、 デプロイメント をインストールし、デモ アプリをローカルで提供して、 browserで変更をライブでテストできるようにします。
$nr1 update$nr1 nerdpack:uuid -gf # Update the app unique ID$npm install # Install dependencies$nr1 nerdpack:serve # Serve the demo app locally
で ローカルのNew Relic ホームページ browserを開きます。Apps をクリックすると、 Your appsセクションにCreate a table [テーブルの作成]ランチャーが表示されます。 これが、これから作業するデモ アプリケーションです。 さあ、選択してください。
デモアプリをよく見てください。 左側にTransaction Overview [トランザクションの概要]という名前のTableChart
があり、その横にAreaChart
があります。 2 行目に新しいテーブルを追加するには、 Table
コンポーネントを使用します。
テーブルコンポーネントの操作
nerdlets/create-a-table-nerdlet
サブディレクトリに移動し、 index.js
ファイルを開きます。
次のコンポーネントをファイルの先頭の import ステートメントに追加して、例のようにします。
Table
TableHeader
TableHeaderCell
TableRow
TableRowCell
import {Table,TableHeader,TableHeaderCell,TableRow,TableRowCell,PlatformStateContext,Grid,GridItem,HeadingText,AreaChart,TableChart,} from 'nr1';
基本的なテーブルコンポーネントを追加する
index.js
内の空のGridItem
を見つけます。ここからテーブルの構築を開始します。
最初の<Table>
コンポーネントを追加します。 items
プロパティは、サンプル値を含む_getItems()
を呼び出してデータを収集します。
<GridItem className="primary-content-container" columnSpan={12}> <Table items={this._getItems()}></Table></GridItem>;
ヘッダーと行を追加する
Table
コンポーネントは固定数のヘッダー セルと行をレンダリングするため、次の手順では、ヘッダー コンポーネントと、必要なテーブル行を返す関数を追加します。
Table
コンポーネント内に、見出しごとにTableHeader
を追加し、次にTableHeaderCell
子を追加します。
必要な行数がわからないため、最善の方法は、関数を呼び出して、 _getItems()
によって返される項目と同じ数のTableRows
を構築することです。
<TableHeader> <TableHeaderCell>Application</TableHeaderCell> <TableHeaderCell>Size</TableHeaderCell> <TableHeaderCell>Company</TableHeaderCell> <TableHeaderCell>Team</TableHeaderCell> <TableHeaderCell>Commit</TableHeaderCell></TableHeader>;{ ({ item }) => ( <TableRow> <TableRowCell>{item.name}</TableRowCell> <TableRowCell>{item.value}</TableRowCell> <TableRowCell>{item.company}</TableRowCell> <TableRowCell>{item.team}</TableRowCell> <TableRowCell>{item.commit}</TableRowCell> </TableRow> );}
New Relic で実行されているアプリケーションを見てみましょう。
標準の表セルをスマートセルに置き換える
New Relic One ライブラリには、ユーザー、メトリックス、テンプレート名などの特定のデータ型を自動的にフォーマットできるセル コンポーネントが含まれています。
作成したテーブルには、これらのコンポーネント: Application [アプリケーション](エンティティ名) とSize [サイズ] (メトリック)) のメリットを活用できる列が含まれています。
EntityTitleTableRowCell
とMetricTableRowCell
を使用する前に、まずそれらを import ステートメントに追加する必要があります。
import { EntityTitleTableRowCell, MetricTableRowCell, ... /* All previous components */} from 'nr1';
最初の TableRowCell
と 2 番目のをテンプレート セルとメトリック セルに置き換えて、テーブル行を更新します。
EntityTitleTableRowCell
は自己終了タグであることに注意してください。
{ ({ item }) => ( <TableRow> <EntityTitleTableRowCell value={item} /> <MetricTableRowCell type={MetricTableRowCell.TYPE.APDEX} value={item.value} /> <TableRowCell>{item.company}</TableRowCell> <TableRowCell>{item.team}</TableRowCell> <TableRowCell>{item.commit}</TableRowCell> </TableRow> );}
テーブルをもう一度見てみましょう。追加したセル コンポーネントによって、データが適切にフォーマットされます。
テーブルは素晴らしいですが、インタラクティブなテーブルはさらに優れたものになります。最後の更新として、ユーザーが各データ行に対して操作できるようにします。
_getActions()
メソッドをindex.js
ファイルの_getItems()
の直前に追加します。
コードから推測できるように、 _getActions()
、Team [チーム セル]またはCommit [コミット]セルをクリックすると集計ボックスを生成します。
_getActions() { return [ { label: 'Alert Team', iconType: TableRow.ACTIONS_ICON_TYPE.INTERFACE__OPERATIONS__ALERT, onClick: (evt, { item, index }) => { alert(`Alert Team: ${item.team}`); }, }, { label: 'Rollback Version', iconType: TableRow.ACTIONS_ICON_TYPE.INTERFACE__OPERATIONS__UNDO, onClick: (evt, { item, index }) => { alert(`Rollback from: ${item.commit}`); }, }, ];}
return
ステートメントでTableRow
コンポーネントを見つけて、 actions
プロパティを_getActions()
にポイントします。
TableRow
アクション プロパティは、ユーザーがテーブル行にマウスを移動したときに表示される一連のアクションを定義します。 アクションには必須のテキストとonClick
コールバックがありますが、必要に応じてアイコンを表示したり無効にしたりすることもできます。
<TableRow actions={this._getActions()}>
アプリケーションに戻り、いずれかの行にマウスを移動してみてください。利用可能な 2 つのアクションが表示されることに注意してください。 クリックすると、選択した行データを引数として関数がトリガーされ、 browserに集計が表示されます。
次のステップ
コンポーネントを使用してデータを自動的にフォーマットし、コンテキストに応じたアクションを提供することで、New Relic アプリケーションにテーブルを構築しました。 よくやった!
SDK ドキュメントで、 Table
コンポーネント、そのプロパティ、および使用方法について詳しく確認してください。