返された式の句 |
リストに列として表示する必要があるトレース・ディメンション、スパン・ディメンションまたは集計関数を指定します。as 識別子は、オプションで各列見出しの別名を提供します。別名は一意である必要があります。
例:
ServiceName as Service
as 識別子の後にスペースがある場合は、列名の値を引用符" " で囲む必要があります。
この句で使用できる、サポートされている関数を次に示します:
abs : 数値式の絶対値を返します。
例:
abs(errorcount)
avg : 数値ディメンションの平均値を返します。
例:
avg(SpanDuration) as "Duration"
cast : 式と目的の単位を引数として使用して、式の単位を指定できます。これにより、ユーザー・インタフェースで戻り値のレンダリング方法が異なる場合があります。
構文: cast(expression, unit)
expression は、表される入力データです。数値または時間式である必要があります。
unit は、入力の表示方法または出力への変換方法を決定する単位です。選択可能な値は次のとおりです。
EPOCH_TIME_MS: 時間(ミリ秒)。
DURATION_MS : 期間(ミリ秒)。
BYTES : サイズ(バイト)
例1:
cast(myTimeAttribute, 'EPOCH_TIME_MS')
例2:
cast(myDuration, 'DURATION_MS')
例3:
cast(myStorageSize, 'BYTES')
ceil : 式にゼロ以外の小数部分がある場合、次に大きい値を返します。それ以外の場合は、値をlongとして返します。
例:
ceil(traceDuration)
conditional_count : 条件式の合計数(数)を返します。
構文: conditional_count(conditional expression)
例:
conditional_count(dimensionA = 'abc')
count : ディメンションの合計数を返します。
例:
count(OperationName)as "Operation Count"
count(*) as "Trace Count"
count_distinct : ディメンションの個別値の数を返します。
例:
count_distinct(sessionId) as "Sessions"
date_bucket : 変換された時間式を返します。
構文: date_bucket(numeric expression, string)
numeric expression は、単位がEPOCH_TIME_MSの数値である必要がある時間入力です。
string は、時間入力を出力に変換する方法を決定する文字列です。有効なオプションは次のとおりです。
'day_of_week' : 有効な戻り値は、UTC曜日を示す1から7です(日曜日は1)。
'day_of_month' : 有効な戻り値は、月のUTC日を示す1から31です。
'day_of_year' : 有効な戻り値は、UTCに基づく1から366です。
'month_of_year' : 有効な戻り値は、UTCに基づく1から12です。
'hour_of_day' : 有効な戻り値は、UTCに基づく0から23です。
'minute_of_hour' : 有効な戻り値は0から59です。
'calendar_quarter_of_year' : 有効な戻り値は、UTCに基づく1から4です。
'truncate_day' : 有効な戻り時間値は、UTCの現在日です。
'truncate_hour' : 有効な戻り値は、UTC時間の先頭です。
'truncate minute' : 有効な戻り値は、UTCの分の開始です。
floor : 式の値の小数部分を切り捨て、longを返します。
例:
floor(traceDuration)
histogram :数値属性のデータ・ヒストグラムを生成します。均等幅(histogram(numeric_attr, min_value, max_value, num_buckets) )のバケットにデータを分散します。
例:
histogram(spanDuration, 0, 6000, 3)
max : ディメンションの最大値を返します。
例:
max(SpanDuration) as "Maximum Duration"
min : ディメンションの最小値を返します。
例:
min(SpanDuration) as "Minimum Duration"
mod : expression2をexpression1で除算した余りを返します。expression1が0の場合、expression2の値を返します。
構文: mod(expression1, expression2)
このファンクションは、任意の数値データ型、または暗黙的に数値データ型に変換できる数値以外のデータ型を、引数として取得します。数値の優先順位が最も高い引数が決定され、残りの引数はそのデータ型に暗黙的に変換され、そのデータ型が返されます。
例:
mod (errorcount, spancount)
omittedTo : 値がないディメンションに値を割り当てるためのオプションを提供します。
例:
omittedTo(UserName, 'John Doe')
上の例では、UserName ディメンションに値が割り当てられている場合は、割り当てられた値が結果に表示され、値が割り当てられていない場合はJohn Doeが表示されます。
percent_of_items : 現在の行で表されるトレースまたはスパンの割合を戻します。percent_total_items() の値はcount(*)/total_items()*100 と同じです。
例:
show traces serviceName, count(*), total_items(), percent_of_items() group by serviceName
percent_with_root_error : エラーでマークされたルート・スパンがある完了済トレースの割合を返します。この値はsum(traceRootSpanErrorCount)/count(traceRootSpanErrorCount)*100 と同じです。
例:
show traces serviceName, sum(traceRootSpanErrorCount), count(traceRootSpanErrorCount), percent_with_root_error() group by serviceName
percentile : 数値属性((numeric_attr, 0-100) )の近似パーセンタイル値を返します。
例:
percentile(traceDuration, 90)
ノート: これは現在、oracleデータベースのapprox_percentile() 関数で実装されており、近似パーセンタイル値を計算します。
rate : 時間の経過とともにcount() を返します。
例:
show traces rate() between now()-1 hour and now() timeseries 5 minutes
前述の例では、メイン問合せの結果は60分以上計算されるため、結果に表示される値はcount() /60になります。時系列が計算されると、各データ・ポイントは5分間カウントを計算するため、各ポイントのレート値はcount() /5になります。これにより、結果全体と時系列の各ポイントの両方で1分当たりのレートが得られます。
regexp_count : 指定した位置から始まるソース文字列でパターンが発生した合計回数を返します。検索位置から始まるソース文字列に一致が見つからない場合は0を返し、指定された開始位置からソース文字列内の検索パターンの出現回数を返します。
構文: regexp_count (expression, pattern, position, match_parameter)
expression は文字列式です。有効な文字列式(ソースchar)は、アクティブな有効な属性または属性および演算子(serviceName || operationName など)を使用して作成される文字列式です。
pattern は、パターンを検証および検索するために使用する有効な正規表現パターンです。
position は、検索を開始するソース文字の位置を示す正の整数です。最初のオカレンスが検出されると、最初のオカレンスの後に2番目のオカレンスが検索されます。
match_parameter は、一致動作を示す一致パラメータです。
サポートされている値は次のとおりです。
i : 大/小文字を区別しない照合を指定します。
c : 大文字と小文字を区別し、アクセントを区別する照合を指定します。
n : 正規表現でピリオド(.)を使用できます。この文字を省略すると、ピリオドは改行文字と一致しません。
m : ソース文字列は複数行として扱われます。キャレット(^) は開始で、$ はソース文字列全体の終了時のみでなく、ソース文字列内の任意の行の終了です。このパラメータを省略すると、ソース文字列は1行として処理されます。
x : 空白を無視します。デフォルトでは、空白文字自体が一致します。
例:
show TRACES traceId where REGEXP_COUNT(traceId, 'a', 7, 'c') >= 2
前述の例では、問合せは、traceId の位置7から始まる検索を使用して、traceId 内でchar:a が2回以上出現するトレースを検索します。
ノート
次の2つの引数のみを指定することもできます。
regexp_count (expression, pattern)
例: show TRACES traceId where REGEXP_COUNT(traceId, 'a') >= 2
前述の例では、traceId 内でパターン/文字a が2回以上出現するトレースを検索します。
regexp_instr : 指定された式の正規表現パターンを検索し、文字列内のパターンの最初の文字の開始位置を返します。
構文: regexp_instr (expression, pattern)
expression は文字列式です。有効な文字列式は、アクティブな有効な属性(traceId やserviceName など)または属性と演算子(serviceName || operationName など)を使用して作成される文字列式です。
pattern は、パターンを検証および検索するために使用する有効な正規表現パターンです。
例:
show TRACES REGEXP_INSTR(serviceName, 'cli') as RegexInstr, traceId
前述の例では、問合せによって、pattern/char: cli で始まるserviceName 値を持つトレースが検索されます。
regexp_like : 指定された文字列式に対して正規表現照合を実行し、一致した文字列式(属性)を返します。
構文: regexp_like (expression, pattern, match_parameter)
expression は文字列式です。有効な文字列式は、アクティブな有効な属性(traceId やserviceName など)または属性と演算子(serviceName || operationName など)を使用して作成される文字列式です。
pattern は、パターンを検証および検索するために使用する有効な正規表現パターンです。
match_parameter は、一致動作を示す一致パラメータです。これはオプションです。
サポートされている値は次のとおりです。
i : 大/小文字を区別しない照合を指定します。
c : 大文字と小文字を区別し、アクセントを区別する照合を指定します。
n : 正規表現でピリオド(.)を使用できます。この文字を省略すると、ピリオドは改行文字と一致しません。
m : ソース文字列は複数行として扱われます。キャレット(^)は開始で、$はソース文字列全体の最初のみでなく、ソース文字列内の任意の行の終わりです。このパラメータを省略すると、ソース文字列は1行として処理されます。
x : 空白を無視します。デフォルトでは、空白文字自体が一致します。
例:
regexp_replace : 指定された文字列内のソース・パターンを検索し、指定されたパターンで置換されたソース・パターンが出現する文字列を返します。
構文: regexp_replace (expression, pattern, replace_string, numeric expression)
expression は文字列式です。有効な文字列式(ソースchar)は、アクティブな有効な属性(traceId やserviceName など)または属性および演算子(serviceName || operationName など)を使用して作成される文字列式です。
pattern は、パターンを検証および検索するために使用する有効な正規表現パターンです。
replace_string は、ソース文字列の出現箇所を置換する文字列です。
numeric expression は、置換されるソース文字列の発生を示す数値または有効な数値式です。これはオプションです。
例:
-
show TRACES regexp_replace(traceId, 'aa', 'ee') as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'aa')
-
show TRACES regexp_replace(traceId, 'a', 'apm', 3) as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'a')
ノート
5つの引数を指定することもできます。
regexp_replace (expression, pattern, replace_string, numeric expression1, numeric expression2)
この場合、numeric expression1 は、検索を開始するソース文字列の発生を示す数値または有効な数値式で、numeric expression2 は、置換するソース文字列の発生を示す数値または有効な数値式です。
たとえば、次の問合せを使用して、パターン一致をパターン/文字 a の最初の出現箇所で開始し、2番目の出現箇所の a を apm 文字列に置き換えます。 show TRACES regexp_replace(traceId, 'a', 'apm', 1, 2) as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'aa')
regexp_substr : 指定された文字列式または属性で正規表現パターンを検索し、その文字列式または属性から部分文字列を返します。
構文: regexp_substr (expression, pattern)
expression は文字列式です。有効な文字列式(ソースchar)は、アクティブな有効な属性(traceId やserviceName など)または属性および演算子(serviceName || operationName など)を使用して作成される文字列式です。
pattern は、パターンを検証および検索するために使用する有効な正規表現パターンです。
例1:
show TRACES REGEXP_SUBSTR(serviceName, 'cli') as RegexSubstr, traceId
前述の例では、パターン/文字で始まるserviceName を持つトレース(cli )を検索します。
例2:
show TRACES traceId, serviceName, REGEXP_SUBSTR(serviceName, 'RUM') as RegexSubstr where REGEXP_SUBSTR(serviceName, 'RUM') = 'RUM'
前述の例では、RUMを含むserviceName を持つトレースを検索し、serviceName からRUMを削除して戻します。
span_summary : トレース内のスパンのサマリーを返します。このファンクションは、show(traces) とともに、グループ化されていない問合せでのみ使用できます。
例:
span_summary() as Spans
stddev : 指定された式の標準偏差を返します。
例:
stddev(traceDuration+1)
substr : 指定された文字列から部分文字列を返します。
構文: substr (expression, numeric expression1, numeric expression2)
expression は文字列式です。有効な文字列式(ソースchar)は、アクティブな有効な属性(traceId やserviceName など)または属性および演算子(serviceName || operationName など)を使用して作成される文字列式です。
numeric expression1 (start position) は、部分文字列の開始位置を示す数値または数値に評価される数値式です。
start position が0の場合、1として処理されます。
start position が正の場合、関数はcharの先頭からカウントして最初の文字を検索します。負の場合、関数はcharの末尾から逆方向にカウントされます。
numeric expression2 (length) は、部分文字列の開始位置から始まる部分文字列の長さを示す数値または数値に評価される数値式です。
length は常に正で、値に存在する文字数のみが返されます。
length が1未満の場合、nullが返されます。length が文字列式(ソース文字列)の長さより大きい場合、文字列全体が戻されます。
例:
show TRACES SUBSTR(traceId, 0, 1) as traceShortId, traceId
前述の例では、traceId の位置1から始まるtraceShortId 長さ1でtraceShortId を検索します。
sum : 数値ディメンションの集計値を返します。
例:
sum(ErrorCount) as "Errors"
time_bucket : 表の時間属性(StartTime またはTraceStartTime )およびサポートされている時間グレインを指定すると、行が含まれるバケット番号が返されます。これは主に、時系列問合せの表現に使用されます。
例:
スパン問合せの場合: time_bucket(15, StartTime)
トレース問合せの場合: time_bucket(15, TraceStartTime)
time_bucket() 値は、次のjava式を使用して、ミリ秒単位のエポック時間に戻すことができます: bucketNumber * TimeUnit.MINUTES.toMillis(bucketInMinutes);
time_bucket_start : タイム・バケットの開始を、エポック(単位: EPOCH_TIME_MS)以降の時間値(ミリ秒)として返します。単一の引数、バケットのサイズ(分単位)または引数なしでコールできます。この場合、システムは問合せの期間に基づいてバケット・サイズを決定します。
例:
スパン問合せの場合: time_bucket(15)
トレース問合せの場合: time_bucket()
total_items : 問合せで考慮されるトレースまたはスパンの合計数を返します。
例1:
show traces count(*), total_items()
例2:
show traces count(*), total_items() group by service name
ノート: 例1のcount(*) とtotal_items() は、問合せがグループ化されていないため同じです。例2では、count(*) は行のグループ内の項目数を表し、total_items() は例1と同じ値を持ちます。
total_rows : FIRST x ROWSを無制限に設定できる場合に結果セットに表示される行の合計数を返します。
これは、ディメンションの特定の組合せのカーディナリティを検索する場合に便利です。
例:
show spans total_rows() where component = 'SERVLET' group by serviceName, operationName first 1 rows
unique_values : ディメンションの一意の値および各値の発生回数を返します。ディメンションに含まれる一意の値が5つ以下の場合は、それらが円グラフで表示されます。ディメンションに含まれる一意の値が5つを超える場合は、列にリンクが表示され、これをクリックすると一意の値のリストが表示されます。
例:
unique_values(ApmrumPageUpdateType) as "Page Load/Update"
|