wo [:contents]
概要
squidのログで、応答時間のフィールドがあるので、散布図としてグラフ化して傾向を見る。
#標準のグラフ作成から散布図的なものの作り方が分からない。
Visualization作成
Visualizationを選択し、画面下部の「Other」の「Vega」を選択すると、
下みたいな画面になります。
コード作成
赤枠内にコードを入力し、入力後は赤矢印の所の▶を押すと右側にグラフが描画されます。
散布図用の簡単なコード
■index名:log-squid-2018.07
- 対象のフィールド①:@timestamp ※X軸
- 対象のフィールド②:response_time ※Y軸
{
"$schema": "https://vega.github.io/schema/vega-lite/v2.json",
"mark": "point",
"width": 1000,
data: {
url: {
%context%: true
%timefield%: @timestamp
index: log-squid-2018.07
body: {
size: 10000
_source: ["@timestamp", "response_time" ]
}
}
format: { property: "hits.hits" }
}
transform: [
{
calculate: "toDate(datum._source['@timestamp'])"
as: "time"
}
]
encoding: {
x: {
field: time
type: temporal
"timeUnit": "monthdatehoursminutes"
axis: { title: false }
}
y:{
field: _source.response_time
type: quantitative
axis: { title: "respons time" }
}
"color": {"field": "Origin", "type": "nominal"}
}
}
適当なコードなので不要なパラメータも含まれるかも
描画
無事に描画ができた。
→一直線上になっている応答時間が複数あるように見えるが、自宅内の応答速度ではないし、インターネット上から自宅内?自宅内からインターネット上?のどちらかのはずだけど、何なんの通信が発生しているだろう。。
課題
応答時間の開きが大きく、ローカル環境とインターネット環境のログが分離できていないので、応答時間の傾向が分かりにくいことが分かった。
傾向が見えても、そこからの調査で掘り下げていく方法を見つける必要がある。
logstashで情報を分離したり、vegaで不要な情報を省くようなコードが書ける?とかで対応が必要かな。