メトリクス読み込み
MXQL構文を使用してメトリクスを取得する方法を学びます。
| コマンド | 機能 |
|---|---|
| TAGLOAD | 収集したデータをtag-field形式で保存するカテゴリの情報を表示するために使用します。 |
| FLEXLOAD | 収集したデータをfield形式で保存するカテゴリの情報を表示するために使用します。 |
| LogSink | ログの元データを照会する際に使用します。 |
| LogSinkCount | 時間単位でログ件数を集計する際に使用します。 |
TAGLOAD
収集したデータをtag-field形式で保存するカテゴリの情報を表示するために使用します。
| オプション | 機能 |
|---|---|
{backward : true} | 時系列の逆順にデータを読み込みます。 |
{filter : {key:fieldName, value :fieldValue}} | fieldNameフィールドの値がfieldValueと同じデータのみを抽出します。 |
{filter : {key:fieldName, exclude :fieldValue}} | fieldNameフィールドの値がfieldValueと同じデータを除外して抽出します。 |
{filter : {key:fieldName, like :fieldValue}} | fieldNameフィールドの値がfieldValueを部分文字列として持つデータを抽出します。 |
{filter : {key:fieldName, notlike :fieldValue}} | fieldNameフィールドの値がfieldValueを部分文字列として持つデータを除いて抽出します。 |
-
オプションを設定していない場合
CATEGORY app_counter
TAGLOAD -
backwardオプションを設定した場合
CATEGORY app_counter
TAGLOAD {backward : true} -
value filterを設定する場合
CATEGORY app_counter
TAGLOAD {filter : {key:pid, value:905}} -
exclude filterを設定する場合
CATEGORY app_counter
TAGLOAD {filter : {key:pid, exclude:905}} -
like filterを設定する場合
CATEGORY app_counter
TAGLOAD {filter : {key:okindName, like:keeper}} -
notlike filterを設定する場合
CATEGORY app_counter
TAGLOAD {filter : {key:okindName, notlike:keeper}} -
複数のfilterを設定する場合
CATEGORY app_counter
TAGLOAD { filter:[{key:'host_ip', exclude:'192.168.1.102'}, {key:'container', like:'gateway'}] }
TAGLOADとFLEXLOADは、それぞれ設定可能なCATEGORYの値が決まっています。fileter-likeまたはfilter-notlikeオプションを使用する場合、値に番号が付けられている場合、バッククォート(' ')またはダブルクォート(" ")で囲まないと動作しません。CATEGORY app_counter
TAGLOAD { filter:[{key:'host_ip', exclude:'192.168.1.102'},{key:okindName, like:"1"}] }
FLEXLOAD
収集されたデータをfield形式で保存するカテゴリの情報を照会するために使用します。
| オプション | 機能 |
|---|---|
{backward : true} | 時系列の逆順にデータを読み込みます。 |
データ検索条件の段階で設定した情報に従ってデータを読み込みます。
CATEGORY event_cache
FLEXLOAD {backward : true}
ほとんどのカテゴリはTAGLOADを使います。次の文書に含まれるカテゴリのデータを使用する場合のみFLEXLOADを使用します。
FLEXLOADを使用するカテゴリ一覧
-
agent_listカテゴリCATEGORY agent_list
FLEXLOAD
SELECT -
db_agent_listカテゴリCATEGORY db_agent_list
FLEXLOAD
SELECT -
agent_countカテゴリCATEGORY agent_count
FLEXLOAD
SELECT -
event_cacheカテゴリCATEGORY event_cache
FLEXLOAD
SELECT
LogSink
ログの元データを照会する際に使用します。
CATEGORY AppLog
LogSink
ログフィルタリング
特定の条件でログをフィルタリングする際にLogTagを使用します。
CATEGORY AppLog
LogTag {key:city, value:"junju"}
LogTag {key:status, value:"200", exclude:true}
LogSink
LogTagパラメータ
- key: 検索するインデックスキー
- value: 検索する値(ワイルドカード使用可能)
- exclude: 検索除外の可否(true/false)
重要事項
- LogTagはLogSinkまたはLogSinkCountの前に記述する必要があります
- LogTagは同じキーまたは異なるキーに対して様々に記述できます
- 検索キーワード単位でLogTagを追加する必要があります
例
特定のキーワードを含むログの件数を照会する例です。
CATEGORY AppLog
LogTag {key:content, value:"*DebugUtil*", exclude:false}
LogTag {key:content, value:"*HttpServletRequest*", exclude:true}
LogSink
SELECT
GROUP {timeunit:1d, pk:pcode, merge:[rows]}
RENAME {src:_rows_, dst:rows}
CREATE {key:_pk_, value:pcode}
UPDATE {key:rows, value:sum}
クエリの説明
- 最初のLogTag: contentフィールドに「DebugUtil」を含むログを検索
- 2番目のLogTag: contentフィールドに「HttpServletRequest」を含むログを除外
- GROUPのtimeunit:1dで日別集計
- merge:[rows]でログ件数をMetricValueタイプに変換
- UPDATEのsumで日別総件数を計算
LogSinkCount
時間単位でログ件数を集計する際に使用します。
基本的な使い方
CATEGORY AppLog
LogSinkCount
時間帯別にログ件数が集計されます(例:1949、1625、1674...件)。
グループ別集計
特定のフィールドを基準にグループ化してログを集計できます。
単一フィールドグループ化
CATEGORY AppLog
LogSinkCount {group:oname}
複数フィールドグループ化
CATEGORY AppLog
LogSinkCount {group:"oname,oid"}
カンマで区切られた複数のフィールドを指定できます。
時間当たりグループ別集計
数値フィールドに対する集計演算を実行できます。
CATEGORY AppLog
LogSinkCount {group:oname, aggr:price.n}
Aggrに保存できるフィールドは数値(n)フィールドに限定されます。
複数フィールド集計
CATEGORY AppLog
LogSinkCount {group:oname, aggr:"price.n,age.n"}
aggrにはカンマで区切られた複数のフィールドを入力できますが、計算はそれぞれ行われます。
LogTagと一緒に使用
LogTagを使用して特定の条件のログのみを集計できます。
CATEGORY AppLog
LogTag {key:level, value:"ERROR"}
LogSinkCount {group:oname}
上記の例は、ERRORレベルのログのみをフィルタリングしてoname別に件数を集計します。