メインコンテンツまでスキップ
Sumo Logic Japanese

ログ オペレータ クイック ガイド

ログ オペレータ クイック ガイドには、使用可能なパーサ、アグリゲータ、検索オペレータ、および数式のリストが記載されており、各項目には詳細な説明へのリンクが付けられています。  クエリの作成方法に関するステップごとのビデオおよびチュートリアルについては、「クイック スタート チュートリアル」を参照してください。  

以下の表は、使用可能な Sumo Logic パーサ、アグリゲータ、検索オペレータ、および数式のリストです。  

パース

Sumo には、ログ メッセージのフィールドをパースするさまざまな方法があります。

オペレータ 説明 制限事項

parse (anchor)

parse オペレータ (parse anchor とも呼ばれる) は、指定された開始アンカーと停止アンカーに従って文字列をパースし、ソート関数、グループ化関数など、クエリ内の以降の集計関数で使用するためにフィールドとしてラベル付けします。

 

| parse "User=*:" as user

parse regex

parse regex オペレータ (extract オペレータとも呼ばれる) によって、ユーザは正規表現構文を使用して、ログ行から複雑なデータを抽出できます。たとえば、ネストされたフィールドを抽出する場合に Parse regex を使用します。

 

| parse regex field=url "[0-9A-Za-z-]+\.(?<domain>[A-Za-z-]+\.(?:co\.uk|com|com\.au))/.*"

keyvalue

通常ログ ファイルには、キーと値のペア構造を持つ情報が含まれています。keyvalue オペレータで各値とペアになるキーを指定してログ メッセージから値を取得できます。

 

| keyvalue infer "module", "thread"

csv

csv オペレータでコンマ区切り値 (CSV) 形式ログ エントリをパースできます。コンマをデフォルト delimiter.csv オペレータとして使用し、コンマ区切り値 (CSV) 形式ログ エントリをパースできます。デフォルトの区切り文字は、コンマです。

 

csv_raw extract 1 as user, 2 as id, 3 as name

JSON

JSON オペレータは検索クエリ言語オペレータであり、JSON 入力から値を抽出できます。JSON では順序が指定された値のシーケンスを含むネストされたキーおよび配列の両方が使用できるため、Sumo Logic の JSON オペレータは単一最上位レベルフィールド、複数フィールド、ネストされたキー、およびキーの配列を抽出できます。

 

| parse "explainJsonPlan] *" as jsonobject 
| json field=jsonobject "sessionId"

| json auto

 

split

split オペレータで文字列を複数の文字列に分割し、スペース区切りフォーマットなどで区切られたログ エントリをパースできます。

 

クエリの完成例:

_sourceCategory=colon
| parse "] * *" as log_level, text
| split text delim=':' extract 1 as user, 2 as account_id, 3 as session_id, 4 as result

xml

XML オペレータは XPath 1.0 仕様のサブセットを使用して、XML ドキュメントのフィールドをパースできます。このオペレータを使用すると、XPath リファレンスを使用して XML ドキュメントから抽出するフィールドを指定できます。

 

| parse xml "/af/minimum/@requested_bytes"

 

集計

集計関数はメッセージを評価し、それらをグループに格納します。グループ オペレータはグループ化関数と組み合わせて使用します。グループ化関数を使用する場合、単語 "by" がグループ オペレータになります。

 

オペレータ 説明 制限事項

avg

平均関数 (avg) は分析対象の時間範囲内で評価する数値フィールドの平均値を計算します。

 

| avg(request_received) by _timeslice

count、count_distinct、count_frequent

集計 (group-by) 関数はグループ オペレータおよびフィールド名と組み合わせて使用します。グループ オペレータを表すには単語 "by" だけが必要です。count 関数はその右側の項目のオペレータでもあるので、単語 "by" のあるなしに関わらず使用できます。

ダッシュボード クエリに count_frequent オペレータを使用できますが、返される結果の数は上位 100 件までの頻度の結果に制限されます。[Search (検索)]  ページで検索を実行した場合はすべての結果が利用できますが、パネルに表示される結果は上位 100 件のみです。

例 1:

| count by url
 

例 2:

| count_distinct(referrer) by status_code

fillmissing

標準 group-by クエリを実行すると、結果に空白ではないグループのみが返されます。たとえば、timeslice を使用してグループ化をすると、データのあるタイムスライスのみが返されます。

このオペレータを使用するとグループ内にデータがなくても、グループを出力内に残すことができます。

ライブ ダッシュボードまたは継続的なクエリではサポートされません。 

error
| count by _sourceCategory
| fillmissing values("backend", "database", "webapp") in _sourceCategory

first と last

First は検索結果の最初の一致であり、last はクエリのソート順に応じた最後の結果です。

ライブ ダッシュボードまたは継続的なクエリではサポートされません。 

| sort by _timeslice
| first(error_message) by hostname

min と max

min と max 関数を使用して、一連の値の最小値と最大値を見つけます。

 

| max(request_received) by hour

most_recent と least_recent

most_recent と least_recent オペレータは withtime オペレータとともに使用すると、最新から最古の順序でデータを並び替えできます。

 

*ip* OR *address*
| parse regex "(?<IP>\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})" 
| lookup latitude, longitude, country_code from geo://location on ip=IP 
| where !isNull(country_code) 
| withtime IP 
| most_recent(ip_withtime) by country_code 

pct

パーセンタイル関数 (pct) は指定されたフィールドのパーセンタイルを計算します。1 つのクエリに複数の pct 関数を使用できます。

 

| parse "value=*" as value
| pct(value, 95) as value_95pct

stddev

標準偏差関数 (stddev) は、分析対象の時間範囲内の数値の標準偏差値を計算します。この場合、グループは "group by" フィールドで指定します。

 

... | stddev(request_received) group by hour | sort by _stddev

sum

Sum は分析対象の時間範囲内で評価する数値フィールドの値を加算します。

 

... | sum(bytes_received) group by hostname

 

検索オペレータ

このセクションには、Sumo Logic オペレータ、式および検索言語に関する詳細な構文、ルール、および例を記載しています。

オペレータ 説明 制限事項

accum

accum オペレータはフィールドの累積合計を計算します。特定の時間範囲で集計することも、すべての時間間隔の累積合計数を計算することもできます。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

_sourceCategory=IIS (Wyatt OR Luke)
| parse "[user=*]" as cs_username
| timeslice by 1m
| count as requests by _timeslice,cs_username
| sort by _timeslice asc,cs_username
| accum requests as running_total

backshift

backshift オペレータは経時的に変化する値を比較します。Backshift は rollingstd、smooth などのオペレータとともに使用できます。その結果はデータのスパイクによって影響を受けます (スパイクが原因で将来の結果が正しくない場合があります)。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

_sourcecategory=katta 
| timeslice by 1m 
| count by _timeslice,_sourcehost 
| sort + _timeslice 
| backshift _count,1 by _sourcehost

base64Decode

base64Decode オペレータは base64 文字列を ASCII 文字列に変換します。

 

| base64Decode("aHR0cDovL2NvZGVjLmFwYWNoZS5vcmcvY29tbW1vbnM=") as V

base64Encode

base64Encode オペレータは ASCII 文字列を base64 文字列に変換します。

 

| base64Encode("hello world") as base64

CIDR

CIDR オペレータはクラスレス ドメイン間ルーティング (CIDS) 表記を使用して IP ネットワーク トラフィックを分析し、分析を特定のサブネットに絞り込みます。CIDR 表記で IP アドレスのルーティング接頭辞を指定します。

 

(denied OR rejected AND _sourcecategory=firewall 
| parse "ip=*," as ip_address
| where compareCIDRPrefix("10.10.1.32", ip_address, toInt(27)) 
| count by ip_address

concat

Concat オペレータで複数の文字列、数値およびフィールドを 1 つのユーザ定義フィールドに結合できます。文字列の端と端をつないで、定義した新しい文字列に結合します。 

ダッシュボードではサポートされません。

... | concat(octet1, ".", octet2, ".",octet3, ".",octet4) as ip_address

contains

contains オペレータは 2 つのパース済みフィールドの文字列値を比較し、最初のフィールド値に 2 番目のフィールド値が含まれているかどうかを、ブール値の結果で返します。

 

... | contains("hello world", "hello") as containing

decToHex

decToHex オペレータは 2 の補数を負の値に使用して 16 桁以下の long 型値を 16 進文字列に変換します。

 

... | decToHex("4919") as V

diff

diff オペレータは連続する行のフィールドの変化率を計算します。結果を出力するには、diff で数値データを含むフィールドを指定する必要があります。数値以外の値は検索結果から削除されます。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

* | parse "bytes transmited: '*'" as bytes
| timeslice 1m
| sum(bytes) as bytes by _timeslice
| sort _timeslice
| diff bytes as diff_bytes

fields

fields オペレータでクエリの結果に表示するフィールドを選択できます。fields オペレータを使用して、クエリとあまり関係のないフィールドを含む検索出力を整理できます。

 

_sourceCategory=access_logs 
| parse "[status=*]" as status_code 
| fields method, status_code

filter

filter オペレータはサブクエリのフィルタ基準に基づいて、他の検索結果を使用して、検索出力の絞り込みができます。filter オペレータは、フィルタ基準に一致するレコードのみを保持するため、検索結果を絞り込み、最適な情報のみを得ることができます。

このオペレータはクエリ 1 つあたり 最大 100,000 データ ポイントを処理できます。制限値を超えるデータ ポイントは自動的にドロップされ、警告が発生します。 

_sourceCategory=HttpServers
| timeslice 1m
| count by _timeslice, _sourceHost
| filter _sourcehost in (outlier _count by _sourceHost | where _count_violation > 0)
| transpose row _timeslice column _sourcehost

format

format オペレータでメッセージ ログ内のフィールドのデータ (数値、文字列、日付など) をフォーマット化して、1 つのユーザ定義文字列に結合できます。これにより、メッセージ ログ内のデータ (日付、金額など) を判読可能なフォーマットにします。フォーマット化しないと判読が困難な場合に使用します。

 

error 
| parse "fiveMinuteRate=*," as rate 
| format("%s : %s","Five Minute Rate is" , rate) as formattedVal

formatDate

formatDate オペレータでログ ファイル内の日付を必要なフォーマット (米国日付フフォーマット、欧州フォーマット、タイムスタンプなど) の文字列にできます。

 

* | formatDate(now(), "YYYY-MM-dd") as today

geo lookup

Sumo Logic は、パース済み IPv4 または IPv6 アドレスを地図上の地理的位置と照合できます。地図を作成する場合、lookup オペレータはパース済み IP アドレスを、そのアドレスの発信元の緯度/経度に基づいた物理的な位置と照合します。

 

| parse "remote_ip=*]" as remote_ip
| lookup latitude, longitude, country_code, country_name, region, city, postal_code from geo://location on ip = remote_ip
| count by latitude, longitude, country_code, country_name, region, city, postal_code
| sort _count

haversine

haversine オペレータは、2 つの座標の緯度/経度値間の距離 (キロメートル) を返します。座標は、北/南または東/西に基づいて正または負の値にする必要があります。N/S や E/W は使用しません。

 

| haversine(39.04380, -77.48790, 45.73723, -119.81143) as distanceKMs

hexToDec

hexToDec オペレータは、負の値に 2 の補数を使用して 16 桁以下の 16 進文字列を long 型に変換します。

 

| hexToDec("0000000000001337") as V

if

Sumo Logic クエリには、2 つの形式の 3 項式を使用できます。1 つは、IF オペレータを使用して構成します。もう 1 つは疑問符 (?) オペレータを使用します。これらの式は、条件を true または false で評価します。値は各結果に割り当てられます。if-else 条件を簡単に表現するための方法です。

 

| if(status_code matches "5*", 1, 0) as server_error
Or
| status_code matches "5*" ? 1 : 0 as server_error

in

In オペレータはブール値を返します。指定したプロパティが指定したオブジェクトにあれば true、なければ false を返します。

 

| if (status_code in ("500", "501", "502", "503", "504", "505", "506", "401", "402", "403", "404"), "Error", "OK") as status_code_type

ipv4ToNumber

ipv4ToNumber オペレータでインターネット プロトコル バージョン 4 (IPv4) IP アドレスをオクテット ピリオド区切りフォーマットから 10 進フォーマットに変換します。この 10 進フォーマットを使用すると、IP マスキングよりも IP アドレス間の比較が簡単になります。

 

_sourceCategory=service remote_ip
| parse "[remote_ip=*]" as ip
| ipv4ToNumber(ip) as num
| fields ip, num

isBlank

isBlank オペレータは、文字列にテキストが含まれているかどうかを確認します。特に、文字シーケンスがホワイトスペース、空白 ("")、または Null かどうかを確認します。1 つのパラメータを引数とし、ブール値を返します。変数が空白であれば true、変数にホワイトスペース、空白 ("")、または Null 以外の値が含まれていれば false を返します。

 

| where isBlank(user)

isEmpty

isEmpty は、文字列にテキストが含まれているかどうかを確認します。特に、文字シーケンスが空白 ("")、または Null かどうかを確認します。1 つのパラメータを引数とし、ブール値を返します。変数が空白であれば true、変数に空白 ("") または Null 以外の値が含まれていれば false を返します。

 

| if(isEmpty(src_ip),1,0) as null_ip_counts

isNull

isNull オペレータは 1 つのパラメータを引数とし、ブール値を返します。変数が Null であれば true、変数に Null 以外の値が含まれていれば false を返します。

 

| where isNull(src_ip)

isNumeric

isNumeric オペレータは文字列が有効な Java 数値かどうかを確認します。

 

| isNumeric(num)

isPrivateIP

isPrivateIP オペレータは IPv4 アドレスがプライベートかどうかを確認し、ブール値を返します。

 

| isPrivateIP(hostip)

isPublicIP

isPublicIP オペレータは IPv4 アドレスがパブリックかどうかを確認し、ブール値を返します。

 

| isPublicIP("10.255.255.255") as isPublic

isValidIP

isValidIP オペレータは値が有効な IP アドレスかどうかを確認します。isValidIPv4 と isValidIPv6 オペレータは、値がそれぞれ有効な IPv4 または IPv6 かどうかを確認します。 

 

| isValidIP("10.255.255.255") as isIP

join

join オペレータは 2 つ以上のデータ ストリームのレコードを結合します。結果はオンザフライで承認されるため、リアルタイムでテーブルを作成できます。その後、各テーブルに共通の値が検索結果として表示されます。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

クエリの完成例: 

("starting stream from" OR "starting search")
| join 
(parse "starting stream from *" AS a) AS T1, 
(parse "starting search * from parent stream *" AS b, c) AS T2 
on T1.a = T2.c

length

length オペレータは文字列の文字数を返します。where 句内や新規フィールドを作成するために使用できます。文字列が Null の場合は、0 を返します。

 

| where length(query) <= 20

limit

limit オペレータは返された未処理メッセージまたは集計結果の数を削減します。"error" など特定の単語について、group by などの集計オペレータを使用せずに、クエリを実行する場合、limit は返された未処理メッセージの数を削減します。最初に group-by またはその他の集計オペレータを使用すると、limit オペレータはグループ化された結果の数を削減します。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

| count by _sourceCategory
| sort by _count
| limit 5

logcompare

LogCompare オペレータを使用することで 2 つのログの集合である、基準ログ (過去のデータ) と対象ログ (現在のデータ) を比較できます。LogCompare 操作を実行するには、[Messages (メッセージ)] タブの [LogCompare] ボタンを使用して、適切にフォーマット化されたクエリを生成します。

ダッシュボードではサポートされません。

| logcompare timeshift -24h

logreduce

LogReduce のアルゴリズムはファジー理論を使用して文字列とパターンの類似性に基づいてメッセージをクラスタ化します。[LogReduce] ボタンおよびオペレータを使用すれば、デバイスの範囲や Web サイトでのトラフィックなどのアクティビティ パターンをすばやく評価できます。(旧 Summarize)。 

ダッシュボードではサポートされません。

| logreduce

ルックアップ

lookup オペレータを使用すると、ログ メッセージのデータを意味のある情報にマッピングできます。たとえば、lookup オペレータを使用して "userID" を実際のユーザ名にマッピングできます。または、lookup オペレータを使用してブラックリストに登録された IP アドレスを見つけることもできます。

 

| parse "name=*, phone number=*," as (name, phone)
| count by name, phone
//We recommend doing a lookup after an aggregation
| lookup email from https://compay.com/userTable.csv on name=userName, phone=cell

luhn (クレジット カードの有効性確認)

Luhn オペレータは Luhn のアルゴリズムを使用して、メッセージ ログでクレジット カード番号である可能性のある番号の文字列を確認して、有効かどうかを判定します。文字列を入力として、数値ではないすべての文字を削除して、結果の文字列が有効なクレジット カード番号かどうかを確認し、true または false を返します。

 

| parse regex "(?<maybecc>\d{4}-\d{4}-\d{4}-\d{4})" nodrop
| parse regex "(?<maybecc>\d{4}\s\d{4}\s\d{4}\s\d{4})" nodrop
| parse regex "(?<maybecc>\d{16})" nodrop
| if (luhn(maybecc), true, false) as valid

matches

matches オペレータを使用して、文字列をワイルドカード パターンまたは RE2 準拠正規表現と照合します。このオペレータはブール値を返します。where または if 式で使用できます。

 

| if (agent matches "*MSIE*","Internet Explorer","Other") as Browser
| if (agent matches "*Firefox*","Firefox",Browser) as Browser


 

median

指定したフィールドの中央値を計算するには、パーセンタイル (pct) オペレータをパーセンタイル引数を 50 に指定して使用します。

 

| parse "value=*" as value
| pct(value, 50) as median

merge

merge オペレータは指定したマージ方法を使用して、イベントのストリームを 1 つのイベントに削減します。これは特に Transactionize オペレータのサブクエリとして使用すると便利です。

 

| parse "BytesSentPersec = \"*\"" as BytesPersec 
| merge BytesPersec join with "--", _messageTime takeLast

now

now オペレータは現在のエポック時間 (ミリ秒) を返します。formatDate オペレータとともに使用して、フォーマット化された現在時間を取得できます。

ダッシュボード パネルで使用できますが、ライブ モードで表示される now() 時間 (データが処理された時間) は検索時間とは一致しないため、結果は異なります。

検索の結果は、ライブ モードで表示される時間よりも数時間または数日後になる場合があります。

| now() as current_date

num

num オペレータはフィールドを数値に変換します。デフォルトのアルファベット順ではなく、数値を基準に結果をソートする場合は、クエリで num を使用すると便利です。必要に応じて、オペレータとして double (別名の同機能) を使用することもできます。

 

| parse "Execution duration: * s" as duration
| num(duration)
| sort by duration

 

outlier

タイムスタンプの付いた一連の数値があるとすると、クエリで outlier オペレータを使用すれば、シーケンスの中で予想外と思われる値を識別でき、たとえばスケジュール済み検索のアラートや違反を識別できます。

 

クエリの完成例: 

_sourceCategory=IIS/Access
| parse regex "\d+-\d+-\d+ \d+:\d+:\d+ (?<server_ip>\S+) (?<method>\S+) (?<cs_uri_stem>/\S+?) \S+ \d+ (?<user>\S+) (?<client_ip>[\.\d]+) "
| parse regex "\d+ \d+ \d+ (?<response_time>\d+)$"
| timeslice 1m 
| max(response_time) as response_time by _timeslice
| outlier response_time window=5,threshold=3,consecutive=2,direction=+-

parseHex

parseHex オペレータで 16 桁以下の 16 進文字列を数値に変換できます。

 

| parseHex("12D230") as decimalValue

predict

predict オペレータは、タイムスタンプの付いた一連の数値を使用し、将来の値を予測します。たとえば、このオペレータを使用して現在のディスクの空き容量を取得し、システムのディスクがいっぱいになるタイミングを予測することもできます。

 

クエリの完成例:

_sourceCategory=taskmanager
| jobState=InQueue
| timeslice 1m
| count by _timeslice
| toDouble(_count)
| predict _count by 1m forecast=5

replace

指定した文字列のすべてのインスタンスを replace オペレータで別の文字列に置き換えることができます。置き換える文字列を一致する正規表現またはリテラル テキストで指定します。名前のすべてのインスタンスを検索して、新しい名前に変更したり、フィールド内の句読点を他の句読点に置き換えたりする場合などに使用できます。このオペレータは何かの名前を変更する必要がある場合に便利です。

 

| replace(query, ".","->") as query

rollingstd

定義したウィンドウでのフィールドのローリング標準偏差を rollingstd (ローリング標準) オペレータで計算できます。Rollingstd は _rollingstd という名前の新しい列にこの値を表示します。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

| rollingstd _count,1 by _sourcehost

保存

Save オペレータを使用すると、クエリの結果を Sumo Logic ファイル システムに保存できます。後で lookup オペレータを使用して保存済みデータにアクセスできます。Save オペレータは、データを選択した場所に単純な形式で保存します。

ダッシュボードではサポートされません。

| save /shared/lookups/daily_users

sessionize

sessionize オペレータを使用して、あるログ メッセージ (システムから生成) から抽出された値で他のシステムのログ メッセージの相互に関連する値を検索できます。sessionize を実行すると、これらの関連イベントが同じページに表示されます。まとめられたログのスレッドをセッションと呼びます。

ライブ ダッシュボードまたは継続的なクエリではサポートされません。 

クエリの完成例:
(SearchServiceImpl Creating Query) or (Stream SessionId using searchSessionId) or (Started search with sessionId)
| sessionize "session: '*', streamSessionID: '*'" as (serviceSessionId, streamSessionId),
"Stream SessionId=$streamSessionId using searchSessionId=* and rawSessionId=*" as (searchSessionId, rawSessionId),
"Started search with sessionId: $searchSessionId, customerId: *, query: *" as (customerId, query)

smooth

smooth オペレータは、フィールドのローリング (または移動) 平均を計算して、ランダム変動をならした平均値を測定します。Smooth オペレータを使用して、クエリ内のデータ セットの傾向を把握できます。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

| smooth _count,1 by _sourcehost

sort

sort オペレータは集計検索結果を並び替えます。デフォルトのソート順は降順です。ソートした後に、top または limit オペレータを使用して、返されたソート結果の数を削減できます。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

| count as page_hits by _sourceHost
| sort by page_hits asc

substring

substring オペレータで文字列の一部 (サブストリング) のみを出力するオフセットを指定できます。このオペレータを使用して、たとえば従業員の名前全部ではなくイニシャルを出力する場合などに、文字列全体ではなく一部を出力できます。

 

| substring("Hello world!", 6)

timeslice

timeslice オペレータは時間間隔でデータを分割するので、一定の時間幅 (5 分間隔など) で結果をバケットに分割できます。Timeslice は検索結果を一定数のバケットに分割 (たとえば、最近 60 分間を 150 バケットに分割) することもできます。timeslice のエイリアス フィールドは省略可能です。エイリアスを指定しないと、デフォルトの _timeslice フィールドが作成されます。

1 日よりも大きなタイムスライスは、ダッシュボード ライブ モードでは使用できません。

| timeslice 1h
//You can further aggregate your data by these time groupings
| count by _timeslice

toLowerCase と toUpperCase

名前からわかるように、toLowerCase オペレータは文字列をすべて小文字に変換します。toUpperCase オペレータは文字列をすべて大文字に変換します。

 

| toUpperCase(_sourceHost) as _sourceHost 
| where _sourceHost matches "*NITE*"

top

top オペレータを sort オペレータとともに使用すると、返されたソート結果の数を削減できます。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

| top 5 _sourcecategory

total

total オペレータはフィールドの総合計を計算し、その値をすべての行に入力します。一連のフィールドで行をグループ化することもできます。

ダッシュボード パネルで使用できますが、検索では最初の group-by 句の後に追加する必要があります。

| total gbytes as total_memory

trace

trace オペレータは、非常に高度なフィルタとして機能し、個々のログ メッセージを関連付けます。trace オペレータに識別値 (ユーザ ID、IP アドレス、セッション ID など) を使用すると、この元の ID と関連のあるアクティビティ セット全体を取得できます。

ライブ ダッシュボードまたは継続的なクエリではサポートされません。 

| trace "ID=( [0-9a-fA-F] {4} )" "7F92"

transaction

transaction オペレータは、ログの関連するシーケンスを分析するために使用します。Web サイトのサインアップや E コマース データのトラッキング、分散型システムのシステム アクティビティのモニタリングまで、どのようなデータ タイプを分析する場合でも、transaction オペレータはさまざまな用途で使用できます。

データが未ソートの状態のテーブルはダッシュボードに追加できますが、フロー図の追加はできません。

フロー別のトランザクションはダッシュボードでは使用できません。

| transaction on sessionid fringe=10m 
with "Starting session *" as init, 
with "Initiating countdown *" as countdown_start, 
with "Countdown reached *" as countdown_done, 
with "Launch *" as launch 
results by transaction

transactionize

transactionize オペレータは、指定したフィールドで一致するログをグループ化します。グループ内のログはすべての定義済みフィールドで一致する必要があるその他の "group by" オペレータと異なり、transactionize はログを同じグループに割り当てる場合、1 つのフィールドが一致するだけですみます。

 

| parse "[system=001] [sessionId=*]" as system1Id nodrop 
| parse "[system=002][sessionId=*]" as system2Id nodrop 
| parse "[system=003][sessionId=*]" as system3Id nodrop 
| parse "system=001 with sessionId=*" as system1Id nodrop 
| transactionize system1Id, system2Id, system3Id

transpose

transpose オペレータは、集計検索結果に対応して動的に列を作成します。動的な機能であるため、クエリの出力を変更して、検索結果をフィールドに反映させます。最初は出力スキーマを知らなくても、クエリを設計できるということでもあります。

 

クエリの完成例:

_sourceCategory=service 
| parse "Successful login for user '*', organization: '*'" as user, org_id 
| timeslice 1d 
| count _timeslice, user 
| transpose row _timeslice column user

urldecode

urldecode オペレータは、クエリ内の URL をデコードし、デコードされた (エスケープされていない) URL 文字列を返します。

 

| urldecode(url) as decoded

urlencode

urlencode オペレータは、URL を ASCII 文字セットにエンコードします。

 

| urlencode(url) as encoded

where

検索クエリの結果を絞り込むには、"where" を条件オペレータとして使用します。where オペレータは、パイプ記号 ("|") で区切り、他のオペレータとは別個に配置する必要があります。つまり、以下の構成では機能せず、構文エラーが発生します。

 

//We recommend placing inclusive filters before exclusive filters in query strings
| where status_code matches "4*"
| where !(status_code matches "2*")

数式

一般的な数式をログ行から抽出した数値データに使用できます。数学関数またはグループ化関数に暗黙的に整数を入力する必要がある場合、文字列データは数値に変換されます。

オペレータ 説明 制限事項

基本

     

abs

絶対関数は x の絶対値を計算します。  

| abs(-1.5) as v
// v = 1.5

round

四捨五入関数は x に最も近い整数を返します。  

| round((bytes/1024)/1024) as MB

ceil

天井関数は最も小さな整数値に切り上げます。x よりも小さくない最小の整数値を返します。  

| ceil(1.5) as v
// v = 2

floor

床関数は最も大きな整数値に切り下げます。x よりも大きくない最大の整数値を返します。  

| floor(1.5) as v
// v = 1

max

最大関数は 2 つの値の大きなほうを返します。  

| max(1, 2) as v
// v = 2

min

最小関数は 2 つの値の小さなほうを返します。  

| min(1, 2) as v
// v = 1

sqrt

平方根関数は x の平方根値を返します。  

| sqrt(4) as v
// v = 2

cbrt

立方根関数は x の立方根値を返します。  

| cbrt(8) as v
// v = 2

指数および対数

     

exp

指数関数はオイラー数 e を x 乗して返します。  

| exp(1) as v
// v = 2.7182818284590455

expm1

expm1 関数は exp(x)-1 の値を返します。exp(x) の丸めを補正します。  

| expm1(0.1) as v
// v = 0.10517091807564763

log

対数関数は x の自然対数を返します。  

| log(2) as v
// v = 0.6931471805599453

log10

log10 関数は x の常用対数を返します。  

| log10(2) as v
// v = 0.3010299956639812

log1p

log1p 関数は x が小さな値でも log(1+x) を正確に計算します。  

| log1p(0.1) as v
// v = 0.09531017980432487

三角関数

     

sin

引数の正弦 (ラジアン)。  

| sin(1) as v
// v = 0.8414709848078965

cos

引数の余弦 (ラジアン)。  

| cos(1) as v
// v = 0.5403023058681398

tan

引数の正接 (ラジアン)。  

| an(1) as v
// v = 1.5574077246549023

asin

逆正弦 (ラジアン)。  

| asin(1) as v
// v = 1.5707963267948966

acos

逆余弦 (ラジアン)。  

| acos(x)\

atan

逆正接 (ラジアン)。  

| atan(x)

atan2

4 象限逆正接。  

| atan2(0, -1) as v
// v = pi

sinh

引数の双曲正弦 (ラジアン)。  

| sinh(x)

cosh

引数の双曲余弦 (ラジアン)。  

| cosh(x)

tanh

引数の双曲正接 (ラジアン)。  

| tanh(x)

高度な関数

     

hypot

二乗の配列の合計の平方根を返します。  

| hypot(1, 0) as v
// v = 1

toDegrees

角度をラジアンから度に変換します。  

| toDegrees(asin(1)) as v
// v = 90

toRadians

角度を度からラジアンに変換します。  

| toRadians(180) as v
// v = pi

 

  • この記事は役に立ちましたか?