14.4.5. 関数一覧
14.4.5.1. debug
debug(value: any)
渡された値を文字列としてGraylogログに出力します。
デバッグメッセージは、デバッグしようとしているメッセージを処理しているGraylogノードのログにのみ表示されます。
例:
// Print: "INFO : org.graylog.plugins.pipelineprocessor.ast.functions.Function - PIPELINE DEBUG: Dropped message from <source>"
let debug_message = concat("Dropped message from ", to_str($message.source));
debug(debug_message);
14.4.5.2. to_bool
to_bool(value: any)
文字列値を使用して、単一のパラメータをブール値に変換します。
14.4.5.3. to_double
to_double(value: any, [default: double])
最初のパラメーターをdouble浮動小数点値に変換します。
14.4.5.4. to_long
to_long(value: any, [default: long])
最初のパラメータをlong整数値に変換します。
14.4.5.5. to_str
to_str(value: any, [default: str])
最初のパラメータを文字列表現に変換します。
14.4.5.6. to_url
to_url(url: any, [default: str])
文字列表現を使用して値を有効なURLに変換します。
14.4.5.7. to_map
to_map(value: any)
指定されたマップのような値を有効なマップに変換します。
この関数は、現在解析されたJSONツリーのマップへの変換のみをサポートしています。そのため set_fields
と一緒に使用できます。
例:
let json = parse_json(to_str($message.json_payload));
let map = to_map(json);
set_fields(map);
14.4.5.8. is_null
is_null(value: any)
値がnullかどうかをチェックします。
14.4.5.9. is_not_null
is_not_null(value: any)
値が nullでないかどうかをチェックします。
14.4.5.10. is_boolean
is_boolean(value: any)
値がbool値( true
または false
)かどうかをチェックします。
14.4.5.11. is_number
is_number(value: any)
値が数値かどうかをチェックします。
14.4.5.12. is_double
is_double(value: any)
値が浮動小数点値かどうかをチェックします。
14.4.5.13. is_long
is_long(value: any)
値が整数値かどうかをチェックします。
14.4.5.14. is_str
is_str(value: any)
値が文字列かどうかをチェックします。
14.4.5.15. is_collection
is_collection(value: any)
値が反復可能なコレクションかどうかをチェックします。
14.4.5.16. is_list
is_list(value: any)
値が反復可能なリストかどうかをチェックします。
14.4.5.17. is_map
is_map(value: any)
値がマップかどうかをチェックします。
14.4.5.18. is_date
is_date(value: any)
値が日付かどうかをチェックします。
14.4.5.19. is_period
is_period(value: any)
値が期間かどうかをチェックします。
14.4.5.20. is_ip
is_ip(value: any)
値がIpアドレスかどうかをチェックします。
14.4.5.21. is_json
is_json(value: any)
値が解析済みのJSONツリーかどうかをチェックします。
14.4.5.22. is_url
is_url(value: any)
値が解析済みのURLかどうかをチェックします。
14.4.5.23. abbreviate
abbreviate(value: str, width: long)
ellipsesを使用して文字列を省略します。
14.4.5.24. capitalize
capitalize(value: str)
最初の文字を大文字にします。
14.4.5.25. uncapitalize
uncapitalize(value: str)
最初の文字を小文字にします。
14.4.5.26. uppercase
uppercase(value: str, [locale: str])
大文字に変換します。
localeのデフォルトはenです。
14.4.5.27. lowercase
lowercase(value: str, [locale: str])
小文字に変換します。
localeのデフォルトはenです。
14.4.5.28. swapcase
swapcase(value: str)
大文字と小文字を入れ替えます。
14.4.5.29. contains
contains(value: str, search: str,
[ignore_case: boolean])
valueにsearchが含まれているかどうかをチェックし、オプションで検索パターンの大文字と小文字を無視します。
14.4.5.30. replace
replace(value: str, search: str,
[replacement: str], [max: long])
指定した文字列を入れ替えます。
max
は入れ替える個数を指定できます。 max
が2の場合は、先頭からマッチした2つの文字列が指定した文字列に入れ替わります。デフォルトは -1
でマッチした文字列をすべて入れ替えます。
例:
let new_field = replace(to_str($message.message), "oo", "u"); // "fu ruft uta"
let new_field = replace(to_str($message.message), "oo", "u", 1); // "fu rooft oota"
14.4.5.31. starts_with
starts_with(value: str, prefix: str,
[ignore_case: boolean])
文字列 value
が指定された prefix
で始まるか検査します。
オプションで大文字小文字を区別するか指定することができます。
例:
// Returns true
starts_with("Foobar Baz Quux", "foo", true);
// Returns false
starts_with("Foobar Baz Quux", "Quux");
14.4.5.32. ends_with
ends_with(value: str, prefix: str,
[ignore_case: boolean])
文字列 value
が指定された prefix
で終わるか検査します。
オプションで大文字小文字を区別するか指定することができます。
例:
// Returns true
ends_with("Foobar Baz Quux", "foo", true);
// Returns false
ends_with("Foobar Baz Quux", "Quux");
14.4.5.33. substr
substr(value: str, start: long, [end: long])
startオフセット(ゼロベースのインデックス)から始まるvalue部分文字列を返します。オプションでendオフセットを指定できます。
14.4.5.34. concat
concat(first: str, second: str)
firstとsecondテキストを結合した新しい文字列を返します。
14.4.5.35. split
split(pattern: str, value: str, [limit: int])
pattern文字列で、strを分割します。limitオプションを指定することで、分割する回数を指定できます。
パターンは有効な Java文字列リテラル でなければなりません。正規表現でバックスラッシュをエスケープしてください。
14.4.5.36. regex
regex(pattern: str, value: str,
[group_names: array[str])
patternの正規表現とvalueが一致するか検査します。
正規表現でグルーピングしている場合、groupe_namesオプションの配列を使用してグループ名をつけられます。
名前がつけられていない場合、グループ名を0で始まる文字列です。
14.4.5.37. regex_replace
regex_replace(pattern: str, value: str,
replacement: str, [replace_all: boolean])
pattern
の正規表現と value
が一致した場合に指定した文字列と入れ替えます。
replace_all
に true
を指定した場合、マッチしたすべての文字列が入れ替わります。
14.4.5.38. grok
grok(pattern: str, value: str,
[only_named_captures: boolean])
Grokパターンpatternをvalueに適用します。
only_named_capturesだけをtrueに設定すると、名前付きキャプチャを使用して一致を返すことができます。
14.4.5.39. key_value
key_value(
value: str,
[delimiters: str],
[kv_delimiters: str],
[ignore_empty_values: boolean],
[allow_dup_keys: boolean],
[handle_dup_keys: str],
[trim_key_chars: str],
[trim_value_chars: str]
)
指定されたvalueからキーと値の北亜を抽出し、フィールド名と値のマップとして返します。オプションで以下を指定することができます。
delimiters
- ペアの区切り文字。デフォルト値: スペース
kv_delimiters
- キーと値を区切るために使用される文字。デフォルト値: =
ignore_empty_values
- 空の値を許可するかどうか。デフォルト値: true
allow_dup_keys
- 重複キーを許可するかどうか。デフォルト値: true
handle_dup_keys
- take_firstを指定すると重複したキーの最初を採用します。
take_lastを指定すると重複したキーの最後を採用します。
","などを指定すると、キーの値が,で結合されます。
デフォルト値: take_first
trim_key_chars
- キーの文字をトリムする
trim_value_chars
- 値の文字をトリムする
Tip: key_value関数の実行結果をkey_value引数として渡して、抽出されたフィールドをメッセージに設定することができます。
14.4.5.40. crc32
crc32(value: str)
CRC32ダイジェストを作成します。
14.4.5.41. crc32c
crc32c(value: str)
CRC32C(RFC 3720、セクション12.1)ダイジェストを作成します。
14.4.5.42. md5
md5(value: str)
MD5ダイジェストを作成します。
14.4.5.43. murmur3_32
murmur3_32(value: str)
MurmurHash3(32ビット)ダイジェストを作成します。
14.4.5.44. murmur3_128
murmur3_128(value: str)
MurmurHash3(128ビット)ダイジェストを作成します。
14.4.5.45. sha1
sha1(value: str)
SHA1ダイジェストを作成します。
14.4.5.46. sha256
sha256(value: str)
SHA256ダイジェストを作成します。
14.4.5.47. sha512
sha512(value: str)
SHA512ダイジェストを作成します。
14.4.5.48. parse_json
parse_json(value: str)
JSON文字列をJSONツリーオブジェクトに変換します。
14.4.5.49. select_jsonpath
select_jsonpath(json: JsonNode,
paths: Map<str, str>)
指定されたpathsをjsonツリーに対して評価し、結果の値のマップを返します。
14.4.5.50. to_ip
to_ip(ip: str)
指定されたip文字列をIpAddressオブジェクトに変換します。
14.4.5.51. cidr_match
cidr_match(cidr: str, ip: IpAddress)
指定されたipアドレスオブジェクトがcidrパターンと一致するかどうかを確認します。
14.4.5.53. route_to_stream
route_to_stream(id: str |
name: str, [message: str],
[remove_from_default: boolean])
messageを指定されたstreamにルーティングします 。 streamは、nameまたはidで指定できます。
messageが省略された場合、この関数は現在処理中のメッセージを使用します。
remove_from_defaultがtrue場合、メッセージはデフォルトstream "All messages"からも削除されます。
14.4.5.54. remove_from_stream
remove_from_stream(id: str | name: str,
[message: str])
messageを指定されたstreamから削除します 。 streamは、nameまたはidで指定できます。
messageが省略された場合、この関数は現在処理中のメッセージを使用します。
削除した結果、メッセージがすべてのstreamから外れた場合、デフォルトstream "All messages"に戻されます。
明示的に完全な削除をしたい場合、drop_messages関数を使用します。
14.4.5.55. create_message
create_message([message: str], [source: str],
[timestamp: DateTime])
指定されたパラメータから新しいメッセージを作成します。
いずれかが省略された場合、その値は現在処理中のメッセージの対応するフィールドから取得されます。
timestampが省略された場合、作成されたメッセージのタイムスタンプはその時点のタイムスタンプになります。
14.4.5.56. clone_message
clone_message([message: str])
メッセージをクローンします。 messageが省略された場合、この関数は現在処理中のメッセージを使用します。
14.4.5.57. drop_message
drop_message(message: str)
処理パイプラインは、ルールの実行が終了した後に、指定されたmessageを削除します。
messageが省略された場合、この関数は現在処理中のメッセージを使用します。
14.4.5.58. has_field
has_field(field: str, [message: str])
指定されたmessageにfieldが含まれているかどうかを確認します。
messageが省略された場合、この関数は現在処理中のメッセージを使用します。
14.4.5.59. remove_field
remove_field(field: str, [message: str])
指定されたmessageから指定されたfieldを削除します。
messageが省略された場合、この関数は現在処理中のメッセージを使用します。
14.4.5.60. set_field
set_field(field: str, value: any,
[prefix: str], [suffix: str], [message: str])
指定されたfieldにvalueを設定します。fieldは有効な文字列でなければならず、 .を含むことはできません。
先頭と末尾の空白は削除されます。
オプションのprefixおよびsuffixパラメータは、挿入されたフィールド名に追加する接頭辞または接尾辞を指定します。
messageが省略された場合、この関数は現在処理中のメッセージを使用します。
14.4.5.61. set_fields
set_fields(fields: Map<str, any>,
[prefix: str], [suffix: str], [message: str])
指定されたメッセージのfieldに、指定された名前と値のペアをすべて設定します。
これは、 set_fieldのように機能する便利な関数です 。
オプションのprefixおよびsuffixパラメータは、挿入されたフィールド名に追加する接頭辞または接尾辞を指定します。
messageが省略された場合、この関数は現在処理中のメッセージを使用します。
14.4.5.62. rename_field
rename_field(old_field: str,
new_field: str, [message: str])
指定されたメッセージのフィールド名old_fieldをnew_fieldに変更します。
値は変更されません。
14.4.5.63. syslog_facility
syslog_facility(value: any)
syslogファシリティ番号valueを文字列表現に変換します。
14.4.5.64. syslog_level
syslog_level(value: any)
syslogレベルvalueを文字列表現に変換します。
14.4.5.65. expand_syslog_priority
expand_syslog_priority(value: any)
syslog優先順位番号を数値重大度とファシリティ値に変換します。
14.4.5.66. expand_syslog_priority_as_str
expand_syslog_priority_as_str(value: any)
syslog優先度番号を重大度およびファシリティ文字列表現に変換します。
14.4.5.67. now
now([timezone: str])
現在の日付と時刻を返します。 デフォルトのタイムゾーンUTC使用します。
14.4.5.68. parse_date
parse_date(value: str, pattern: str,
[locale: str], [timezone: str])
patternを使用して、 valueを日付と時刻のオブジェクトに変換します 。
パターンでタイムゾーンが検出されない場合は、オプションのtimezoneパラメータが想定されるタイムゾーンとして使用されます。
省略すると、タイムゾーンのデフォルトはUTCになります。
記号 |
意味 |
形式 |
例 |
G |
era |
text |
AD |
C |
century of era (>=0) |
number |
20 |
Y |
year of era (>=0) |
year |
1996 |
x |
weekyear |
year |
1996 |
w |
week of weekyear |
number |
27 |
e |
day of week |
number |
2 |
E |
day of week |
text |
Tuesday; Tue |
y |
year |
year |
1996 |
D |
day of year |
number |
189 |
M |
month of year |
month |
July; Jul; 07 |
d |
day of month |
number |
10 |
a |
halfday of day |
text |
PM |
K |
hour of halfday (0~11) |
number |
0 |
h |
clockhour of halfday (1~12) |
number |
12 |
H |
hour of day (0~23) |
number |
0 |
k |
clockhour of day (1~24) |
number |
24 |
m |
minute of hour |
number |
30 |
s |
second of minute |
number |
55 |
S |
fraction of second |
millis |
978 |
z |
time zone |
text |
Pacific Standard Time; PST |
Z |
time zone offset/id |
zone |
-0800; -08:00; America/Los_Angeles |
' |
escape for text |
delimiter |
|
'' |
single quote |
literal |
' |
14.4.5.69. flex_parse_date
flex_parse_date(value: str,
[default: DateTime], [timezone: str])
Natty日付パーサを使用して日付と時刻のvalueを解析します。
パターンでタイムゾーンが検出されない場合は、オプションのtimezoneパラメータが想定されるタイムゾーンとして使用されます。 省略すると、タイムゾーンのデフォルトはUTCになります。
14.4.5.70. parse_unix_millisecounds
parse_unix_millisecounds(value: long)
valueをUNIXミリ秒のタイムスタンプ(milliseconds since 1970-01-01T00:00:00.000Z)を使用して、 valueを日付と時刻のオブジェクトに変換します 。
14.4.5.72. to_date
to_date(value: any, [timezone: str])
valueを日付に変換します。 timezoneが指定されていない場合、デフォルトはUTCです。
14.4.5.73. years
years(value: long)
valueの年数でピリオドを作成します。
14.4.5.74. months
months(value: long)
valueの月数で月を作成します。
14.4.5.75. weeks
weeks(value: long)
valueの週数でピリオドを作成します。
14.4.5.76. days
days(value: long)
valueの日数でピリオドを作成します。
14.4.5.77. hours
hours(value: long)
valueの時間数でピリオドを作成します。
14.4.5.78. minutes
minutes(value: long)
valueの分数のピリオドを作成します。
14.4.5.79. seconds
seconds(value: long)
valueの秒数でピリオドを作成します。
14.4.5.80. millis
millis(value: long)
ミリ秒のvalue持つピリオドを作成します。
14.4.5.81. period
period(value: str)
valueからISO 8601で適宜された期間を解析します。
14.4.5.82. lookup
lookup(lookup_table: str, key: any,
[default: any])
名前付きルックアップテーブルで複数の値を検索します。
14.4.5.83. lookup_add_str_list
lookup_add_str_list(lookup_table, key, value,
[keep_duplicates])
名前付きルックアップテーブルに文字列リストを追加します。成功した場合は更新されたリストを返し、失敗した場合はnullを返します。
14.4.5.84. lookup_clear_key
lookup_clear_key(lookup_table, key)
名前付きルックアップテーブルのキーを削除します。
14.4.5.85. lookup_remove_str_list
lookup_remove_str_list
(lookup_table, key, value)
名前付きルックアップテーブルから指定された文字列リストのエントリを削除します。成功した場合は更新されたリストを返し、失敗した場合はnullを返します。
14.4.5.86. lookup_table_set_str_list
lookup_set_str_list(lookup_table, key, value)
名前付きルックアップテーブルに文字列リストを設定します。成功した場合は新しい値、失敗した場合はnullを返します。
14.4.5.87. lookup_set_value
lookup_set_value(lookup_table, key, value)
名前付きルックアップテーブルに単一の値を設定します。成功した場合は新しい値、失敗した場合はnullを返します。
14.4.5.88. lookup_str_list
lookup_str_list(lookup_table, key, [default])
名前付きルックアップテーブルで文字列リストを検索します。
14.4.5.89. lookup_value
lookup_value(lookup_table: str,
key: any, [default: any])
名前付きルックアップテーブルで単一の値を検索します。