Slide 1

Slide 1 text

まずはパネル「Table」を 使い倒してみよう Grafana Meetup Japan 第2回 eForce株式会社 Rinchoku

Slide 2

Slide 2 text

アジェンダ ● 自己紹介 ● 最初に ● 「Table」でできること ● Panel Optionの解説 ● Transformsの解説 ● 最後に

Slide 3

Slide 3 text

自己紹介 名前:林 直哉(Rinchoku) 所属:eForce株式会社 X: @stupid_owl その他: ● SRE NEXT 2024 コアスタッフ @8/3(土), 8/4(日) ● SRE Kaigi 2025 コアスタッフ @ 1/26(日) ● 記事 ○ Grafanaを導入して問い合わせ対応や保守業務を効率化した 話

Slide 4

Slide 4 text

最初に 今回の発表の目標 ● 営業や顧客に近いエンジニアも、Grafanaを触れていくきっかけになってほ しい ○ 自分たち独自のダッシュボードを作ってみようと思ってほしい

Slide 5

Slide 5 text

最初に なぜ「Table」について話すのか?

Slide 6

Slide 6 text

最初に なぜ「Table」について話すのか? ● 最初にObservabilityを導入推進するのは、インフラやSREが多い ● 監視したいもの ○ SLI/SLO ○ エラーバジェット ○ サーバーのメトリクス ○ ログの統計情報 ● Grafanaの「Stat」や「Time series」がメインに使われやすい ○ Grafanaのテンプレートで簡単に設定もできることも

Slide 7

Slide 7 text

最初に なぜ「Table」について話すのか? ● ダッシュボードができた後の課題 ○ ダッシュボードを見るのは一部のエンジニア ○ Grafanaのパネルを追加できる人が固定化される ○ パネルのメトリクスが更新されない

Slide 8

Slide 8 text

最初に なぜ「Table」について話すのか? ● なぜ他メンバーがGrafanaでパネルの追加・更新しないのか(仮説) ○ 自分たちにあまり関係ないデータと思い見ない ○ そもそも自分たちが追加できることを知らない ○ GrafanaのPanel追加に対して難しいイメージを持っている ■ 設定が多い、使い慣れていないQuery ○ 可視化情報が全体になり、構築イメージがわかない

Slide 9

Slide 9 text

最初に なぜ「Table」について話すのか? ● 「Table」のメリット ○ ほぼ全員が見慣れた形式 ■ Excel、SpreadSheet、SQL Client、etc ○ 自由度が高い ■ Queryが正しければPanelに出すことが可能 ■ データ形式・種類をほぼ意識することもない

Slide 10

Slide 10 text

「Table」でできること > Tables are very flexible, supporting multiple modes for time series and for tables, annotation, and raw JSON data. This visualization also provides date formatting, value formatting, and coloring options. In addition to formatting and coloring options, Grafana also provides a variety of Cell types which you can use to display gauges, sparklines, and other rich data displays. https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/table/

Slide 11

Slide 11 text

「Table」でできること 下記をサポートしている ● 時系列 ● 表 ● 生のJSON ● 注釈 オプションを利用して、値のフォーマット、色の対応等を行うことができる

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

本発表用のデモ 本発表時の環境 ● Grafana Cloud v11.1.0 Tableのデモデータ ● MySQL Example Databases ○ sakila ■ https://dev.mysql.com/doc/sakila/en/sakila-structure.html https://dev.mysql.com/doc/index-other.html

Slide 14

Slide 14 text

本発表用のデモ sakilaの概要 ● レンタルDVD屋の業務データ ● 顧客、DVD(映画)、スタッフのテーブルが存在 ● 顧客のレンタルしたDVDは下記のようにたどれる ○ customer -> rental -> inventory -> film

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

本発表用のデモ 運用メンバーが見たいと思われるデータ ● 貸出が多いタイトル・カテゴリ ● 利用が多い/少ない顧客の情報 ● 在庫状況 ● etc

Slide 17

Slide 17 text

Optionsを使い倒す TableのOptionsには下記の9種類 ● Panel options ● Table ● Table footer ● Cell options ● Standard options ● Data links ● Value mappings ● Thresholds ● Field Override

Slide 18

Slide 18 text

Optionsを使い倒す TableのOptionsには下記の9種類 ● Panel options ● Table ● Table footer ● Cell options ● Standard options ● Data links ● Value mappings ● Thresholds ● Field Override

Slide 19

Slide 19 text

Standard options 各値に対しての表示形式を設定できる ● Unit:型や単位の設定 ● Decimals:有効小数点の設定 ● Display name:列の表記名 ● Color Scheme:色設定 ● No value:nullの場合の表記

Slide 20

Slide 20 text

Data links セルにリンクを生成する機能 ● リンクを複数入れることが可能 ● 利用できる変数 ○ ヘッダー ○ 同一行の値 ○ ダッシュボードのDate Range ● リンクの例 ○ https:///user/${__value.numeric} ○ https:///user/123

Slide 21

Slide 21 text

Value mappings 特定の条件に一致したセルの値を別の文字・色を設定するための設定 選択できる値の条件 ● Value ● Range ● Regex ● Speial ○ nullやboolean等の値

Slide 22

Slide 22 text

Thresholds 色分けの条件の設定ができる機能 ● 固定値 or 割合で設定可能 ● 下記2つの設定が必要 ○ Cell OptionでCelltype ○ Standard OptionのColor Scheme

Slide 23

Slide 23 text

Field Override 今までのPanel Options機能はTable全体に作用します →適応してほしくないセルにまで設定が反映される

Slide 24

Slide 24 text

Field Override 条件に一致する列に対してPanelOptionsを適応する機能 ● 条件 ○ 列名 ○ 正規表現 ○ 値 ● Thresholdsでは行全体適応も ある

Slide 25

Slide 25 text

Field Override

Slide 26

Slide 26 text

Transformを使い倒す Transform Dataは合計29個!! ● Add field from calculation ● Concatenate fields ● Config from query results [Beta] ● Convert field type ● Create heatmap [Beta] ● Extract fields ● Filter data by query refId ● Filter data by values ● Filter fields by name ● Format time [Alpha] ● Group by ● Grouping to Matrix ● Histogram ● Join by field ● Join by labels ● Labels to fields ● Limit ● Lookup fields from resource [Alpha] ● Merge series/tables ● Organize fields by name ● Partition by values [Alpha] ● Prepare time series ● Reduce ● Rename fields by regex ● Rows to fields [Beta] ● Series to rows ● Sort by ● Spatial operations [Alpha] ● Time series to table [Beta]

Slide 27

Slide 27 text

Transformを使い倒す 下記5つをうまく使えると、柔軟なTableが使える ● Add field from calculation ● Group by ● Grouping to Matrix ● Join by field ● Organize fields by name

Slide 28

Slide 28 text

Join by field 複数のQuery結果に対して、同一の列の値で連結する機能 SQLのJoin句のようなイメージ userID createdAt 1 2024/06/01 2 2024/06/01 3 2024/06/02 userID rentals 1 5 2 2 3 0 userID createdAt rentals 1 2024/06/01 5 2 2024/06/01 2 3 2024/06/02 0

Slide 29

Slide 29 text

Join by field 一回のQueryで取得した方がいいんじゃない? →必ずしも良いとは限らない

Slide 30

Slide 30 text

Join by field プロダクトによってリレーションが集中テーブルするテーブルがある  →それら全部を連結するSQLを書くのは大変  →一回の実行でDBへの負荷も大きくなる

Slide 31

Slide 31 text

Join by field Join by fieldを使うことで。。。 ● 各SQL事の結果結果を小さくできる ● 他の取得SQLへの影響をなくせる ● SQLがわかりやすいものになる

Slide 32

Slide 32 text

Group by 各列に対して「Group」 or 「Calculate」を選択し、集計結果を作る機能 SQLのGroup By句のようなイメージ

Slide 33

Slide 33 text

Grouping to Matrix 「行」「列」「セル値」を指定して、表を作り直す機能 UserId category value 1 Action 1 1 Animation 3 2 Action 2 2 Classics 1 id\category Action Animation Classics 1 1 3 2 2 3 1

Slide 34

Slide 34 text

Grouping to Matrix

Slide 35

Slide 35 text

Add field from calculation 表に計算結果列を追加する機能 ● 集計対象をチェック形式で指定できる ● 演算形式が豊富に存在 ○ 符号:絶対値, exp, floor, ceil ○ 計算:加算, 引き算, 除算, 掛け算 ■ 2値のみしか対応していない ○ 集計:Count, Min, Max, Variant, Percentile

Slide 36

Slide 36 text

Add field from calculation 表に計算結果列を追加する機能

Slide 37

Slide 37 text

Organize fields by name 列に対して「名称」「表示」「並び替え」ができる機能

Slide 38

Slide 38 text

最後に ● Grafanaで本番DBへのアクセス許可を推進しているわけではないです ○ アクセス可能になることで、不要な負荷上昇・セキュリティリスクの懸念が 上がる ● 顧客単位のメトリクスが見れると、まだファンになれてないユーザー発見につ ながる ○ 推進できるのは、営業・顧客に近いアプリケーションエンジニア ● TableはPanel OptionsとTransform Dataを活用することで、表現力が爆発的 に上がる