数式演算子および関数
式エディターで使用される数式演算子および関数のリファレンス (例を含む)。
派生属性の値は、同じデータ・ソースにある定数および他の属性値に基づいて式を評価した結果の値です。
式の文法は通常の数式 (オペランド 演算子 オペランド) で、グループ化には括弧を使用します。数値属性は、通常の数学演算子 (+
- * / %) を使用して、他の数値属性や定数と組み合わせることができます。% は、「左方オペランド」に 100 を乗算し、「右方オペランド」で除算します。
ストリング属性は、+ を使用して、他のストリング属性や定数と組み合わせることができます。また、以下で説明する関数を使用できます。関数は function_name(argument_1, argument_2,
argument_3) の形式で入力します。
属性は、その名前 (「データ・ソース情報」ツリーに表示される名前) によって表されます。整数定数は、数値として指定されます。 ストリング定数は、引用符で囲みます。
- abs
- 数値の絶対値を戻します。
- atof
- ストリングを浮動小数点値に変換します。
- atoi
- ストリングを整数値に変換します。 通常の C atoi と同じ動作をします。10 進数でない最初の文字で停止します。
- average
- 値のセットの平均である単
一の値を戻します。 値のセットは、関数の引数から取得されます。
複数の個別の値 (属性名や定数など) をそれぞれ別個の引数として指定できます。または、last 関数のみをこの関数の唯一の引数として指定することもできます (属性の最新の値の平均を計算する場合)。この関数の使用例を以下に示します。
average (Attr_A, AttrB, Attr_C)average (last (Attr_A, 10)) - ceiling
- 引数以上の最小の整数を返します。
例えば、
attribute_a = 12.4の場合、ceiling(attribute_a)は値13を返します。また、attribute_a = -12.4の場合、ceiling(attribute_a)は値-12を返します。 - delta
- ある属性の最新の値と、その属性の以前に収集された値の差分。delta の単一引数は
last関数である必要があります。この関数は属性の現行値と以前の値を取得します。通常は以下のように使用します。
delta を計算するために last 関数のどの属性値が使用されるかについて詳しくは、間隔の特定の計算を参照してください。この関数は派生属性にのみ適用でき、属性グループ・フィルターには適用できません。delta (last(OtherAttribute, 2)) - floor
- 引数以下の最大の整数を返します。
例えば、
attribute_a = 12.4の場合、floor(attribute_a)は値12を返します。また、attribute_a = -12.4の場合、floor(attribute_a)は値-13を返します。 - getenv
- 指定された環境変数または「構成変数」の値を戻します。
- ipAddressToName
- IP アドレスをホスト名に変換します。この関数は 1 つの 引数 (ドット 10 進表記の IP アドレス・ストリング) を 必要とします。アドレスを解決できない場合は、IP アドレスが返されます。
- itoa
- 整数をストリングに変換します。 この関数は、数値をストリングに連結する場合に、 最も役立ちます。 派生ストリング + 関数は、ストリング引数を 2 つだけ取ります。
- last
min、max、average、stddev、rate、およびdelta関数によって使用される値のリストを戻します。これは、収集する属性および計算で使用する値 の数という 2 つの引数を使用します。 必要とする属性が、 整数値をストリングとして格納する属性である場合は、最初の引数にatoi関数を含めることができます。 例えば、atoi(numericalStringAttribute)のようにします。 2 番目の引数は数値でなければなりません。 定数としてハードコーディングするか、またはatoi(getenv("ENV_VAR"))式の結果を使用します。属性値を参照することはできません。この関数の使用例を以下に示します。average (last (Attr_A, 10))last (Attribute_A, ${K01_NUM_COLLECTIONS}))制約事項:last関数は、特定の式の中で 1 回しか使えません。- matches
- 正規表現が値と一致したかどうかを示す、ブール値 (true または false) を返します。ストリング・ソースおよび結果をストリングと比較する正規表現の 2 つの引数を取ります。この関数は属性グループのフィルタリングに役立ちます。
- max
- 値のセットの最大である単 一の値を戻します。 値のセットは、関数の引数から取得されます。 複数の個別の値 (属性名や定数など) をそれぞれ別個の引数として指定できます。または、last 関数のみをこの関数の唯一の引数として指定することもできます (属性の最新の値の最大値を計算する場合)。
- min
- 値のセットの最小である単 一の値を戻します。 値のセットは、関数の引数から取得されます。 複数の個別の値 (属性名や定数など) をそれぞれ別個の引数として指定できます。または、last 関数のみをこの関数の唯一の引数として指定することもできます (属性の最新の値の最小値を計算する場合)。
- nameToIpAddress
- ホスト名を IP アドレスに変換します。この関数は 1 つの引数 (ホスト名ストリング) を必要とします。アドレスを解決できない場合は、ホスト名が返されます。
- NetWareTimeToTivoliTimestamp
- Novell NetWare の 16 進時刻値を Tivoli® Monitoring のタイム・スタンプに 変換します。この関数は 1 つの引数 (特別な NetWare 16 進時刻値) を 必要とします。 属性タイプはタイム・スタンプです。
- rate
- ある属性の最新の値と、その属性の以前に収集された値の間の変化率 (1 秒当たり)。
rate の単一引数は
last関数である必要があります。この関数は属性の現行値と以前の値を取得します。通常は以下のように使用します。
rate を計算するために last 関数のどの属性値が使用されるかについて詳しくは、間隔の特定の計算を参照してください。この関数は派生属性にのみ適用でき、属性グループ・フィルターには適用できません。rate (last(OtherAttribute, 2)) - replaceFirst
- 正規表現に一致する最初のサブストリングを、置き換えストリングで置き換えます。 この関数では、3 つの引数を使用します。1 つ目は、入力ストリングです。2 つ目は、入力ストリング内のサブストリングの突き合わせに使用する正規表現です。 3 つ目は、置き換えストリングです。 正規表現、および置き換えストリングで使用できる置換値の詳細については、ICU 正規表現を参照してください。
- replaceAll
- 正規表現に一致するすべてのサブストリングを、置き換えストリングで置き換えます。 この関数では、3 つの引数を使用します。1 つ目は、入力ストリングです。2 つ目は、入力ストリング内のサブストリングの突き合わせに使用する正規表現です。 3 つ目は、置き換えストリングです。 正規表現、および置き換えストリングで使用できる置換値の詳細については、ICU 正規表現を参照してください。
- round
- 数値を最も近い整数に数学的に丸めます。
- sqrt
- 数値の平方根を返します。
- stddev
- 値のセットの標準偏差である単 一の値を戻します。 値のセットは、関数の引数から取得されます。 複数の個別の値 (属性名や定数など) をそれぞれ別個の引数として指定できます。または、last 関数のみをこの関数の唯一の引数として指定することもできます (属性の最新の値の標準偏差を計算する場合)。
- StringToTivoliTimestamp
- 日時ストリングを Tivoli Monitoring のタイム・スタンプに
変換します。この関数は 2 つの引数を必要とします。最初の引数は、
タイム・スタンプをフリー・フォームのストリングで表したものです。2 番目の引数は、
タイム・スタンプのフリー・フォーム・ストリング表記の解析方法を示す
書式制御ストリングです。有効な書式パラメーターを表 1 に示します。属性タイプはタイム・スタンプです。
表 1. StringToTivoliTimestamp の有効な書式パラメーター シンボル 意味 フォーマット 例 y年 yyyyyy961996M月 注: サポートされているのは 英語の月ストリングだけです。MまたはMMMMMMMMM09SeptSeptemberd日ddd202E曜日 注: サポートされているのは 英語の曜日ストリングだけです。EEEEEEEEESaSatSaturdayh午前または午後の時間 (1 から 12) hh07 H時間 (0 から 23) HH00 m分 mm04 s秒 ss05 Sミリ秒 SSSSSS224245aAM または PM マーカー aまたはaaam その他の ASCII 文字 この文字をスキップします -(ハイフン)(スペース)/(スラッシュ):(コロン)*(アスタリスク),(コンマ)表 2 は、タイム・スタンプのストリング表記およびその解析に使用する書式制御ストリングの例を示します。
表 2. StringToTivoliTimestamp の例 . タイム・スタンプのストリング表記のいくつかの例がリストおよび説明されている表 タイム・スタンプのストリング表記 書式制御ストリング 96.07.10 at 15:08:56 yy.MM.dd ** HH:mm:ssWed, August 10, 2010 12:08 pm EEE, MMMM dd, yyyy hh:mm aThu 21/01/2010 14:10:33.17 EEE dd/MM/yyyy HH:mm:ss.SS - sum
- 値のセットの合計である単 一の値を戻します。 値のセットは、関数の引数から取得されます。 複数の個別の値 (属性名や定数など) をそれぞれ別個の引数として指定できます。または、last 関数のみをこの関数の唯一の引数として指定することもできます (属性の最新の値の合計を計算する場合)。
- TivoliLogTimeToTivoliTimestamp
- Tivoli のログ・ファイルのタイム・スタンプを、Tivoli Monitoring のタイム・スタンプに変換します。この関数は 1 つの引数 (Tivoli ログ・ファイルのストリング・タイム・スタンプ) を必要とします。 属性タイプはタイム・スタンプです。
- tokenize
- トークン化されたストリングの中の 1 つのトークン。この関数は 3 つの引数を
必要とします。最初の引数は、
トークンに分割するストリングです。2 番目の引数は、トークンを相互に区切る
ストリング内の文字を 1 つ以上指定します。この引数で指定された
文字のいずれかが出現すると、最初の引数の中にあるトークンが識別され、
分離されます。3 番目の引数は、この関数の結果として返す
トークンのインデックスです。最初のトークンは
インデックス 0 であり、2 番目のトークンはインデックス 1 です (以下同様)。この引数をストリング
LASTにして、最後のトークンを返させることもできます。 - UTCtoGMT
- 協定世界時を GMT の Tivoli Monitoring タイム・スタンプに変換します。この関数は 1 つの引数 (整数の time_t 値) を 必要とします。 属性タイプはタイム・スタンプです。
- UTCtoLocalTime
- 協定世界時をローカルの Tivoli Monitoring タイム・スタンプに 変換します。この関数は 1 つの引数 (整数の time_t 値) を 必要とします。 属性タイプはタイム・スタンプです。
- count
- 最初に呼び出されたときに 1 から開始するカウンターを保持し、
続けて呼び出されるごとにカウンターは 1 増加します。
lastを使用している式でこの関数を同時に使用すると、last()によって格納された要素の数と一致しますが、それはlast()が最大個数に達するまでの間に限ります。この時点で、last()は新しい値のために 最も古い値の削除を開始します。そのため、count()は永久に増加し続けますが、last() の値の総数は同じ ままになります。 - cumulativeSum
- フロー制御要約イベントによって表される重複イベントの引数値の合計を返します。または、データ・ソースからの単一イベントである場合、その引数を返します。この関数では、1 つの数値引数を使用します。 この関数は、イベント・フィルタリングおよび要約がオンに設定されたイベントの属性グループにのみ適用されます。
- eventThreshold
- イベントを生成した属性グループについて構成されているしきい値を返します。
以下の 3 つの列挙を使用した数値です。
SEND_ALL (-3)SEND_FIRST (-2)SEND_NONE (-1)
- isSummaryEvent
- データ・ソースからの単一イベントである場合、0 を返します。イベントがフロー制御要約イベントである場合、1 を返します。 関数にデフォルトの属性を使用する場合、表示される値はイベントおよび要約イベントです。 属性を手動で作成する場合、名前を列挙として定義しない限り、表示される値は 0 および 1 です。 この関数は、イベント・フィルタリングおよび要約がオンに設定されたイベントの属性グループにのみ適用されます。
- occurrenceCount
- フロー制御要約イベントによって表される一致イベントの数を返します。データ・ソースからの単一イベントである場合、1 を返します (フロー制御要約イベントには、最初のイベントが含まれます)。この関数は、イベント・フィルタリングおよび要約がオンに設定されたイベントの属性グループにのみ適用されます。
- summaryInterval
- イベントを生成した属性グループについて構成されている要約間隔を秒単位で返します。この関数は、イベント・フィルタリングおよび要約がオンに設定されたイベントの属性グループにのみ適用されます。
例
派生属性およびフィルタリング属性を作成する数式演算子および関数の使用例
例 1 - 派生属性
| Name | ストリング |
|---|---|
xBytes |
数値 |
yBytes |
数値 |
Virtual_Size |
数値 |
- 属性
totalBytesは、xBytesとyBytesの合計として定義できます。式 xBytes + yBytes を入力します。 - 属性
yPercentが合計バイト数 (yBytes) の百分率である場合、yBytes % (xBytes + yBytes) またはyBytes % totalBytesのように定義できます。
例 2 - 派生属性
Virtual_Size 属性について最近収集された値の最大値を返します。収集するサンプル数には、getenv によって取得した構成変数 K4P_COLLECTIONS_PER_HISTORY_INTERVAL を
atoi によって数値に変換したものを使用しています。
max(last(Virtual_Size,atoi(getenv("K4P_COLLECTIONS_PER_HISTORY_INTERVAL"))))例 3 - 派生属性
xBytes および yBytes 属性値の平方合計の平方根を返します。sqrt(xBytes * xBytes + yBtyes * yBytes)例 4 - 派生属性
xBytes 属性の平均を返します。エージェントが開始されてから収集されたサンプルが 20 個よりも少ない場合は、すべてのサンプルをもとに xBytes 属性の平均を返します。average(last(xBytes,20))例 5 - フィルタリング属性
Name Type Size Used Free
Memory MEM 8 4 4
Disk1 DISK 300 200 100
Disk2 DISK 500 100 400ディスク使用量のみを調べたいとします。解決策は、フィルターを作成して、返されるデータを制限することです。返されるデータを制限するには、
以下のようにブール値 (true または false の値) を返す単純なフィルターを作成します。Type=="DISK"このようにすると、フィルター Type=="DISK" が true の場合に、属性グループは以下の例のようにディスク使用量のデータのみを返します。Name Type Size Used Free
Disk1 DISK 300 200 100
Disk2 DISK 500 100 400例 6 - フィルタリング属性
Name Size Used Free
Memory 8 4 4
Disk1 300 200 100
Disk2 500 100 400返されるデータは前の例に似ていますが、今回は Type 属性が存在しません。ここで matches 関数を使用して、「Name」属性の値と "Disk" の後ろに数値が続くものとが一致する、すべてのデータ行を検索できます。matches(Name, "Disk[0-9]*")フィルターにより、属性 Name のストリングと "Disk" の後ろに数値が続くものとが一致した場合、以下のようにディスクの使用量のデータ行のみが返されます。Name Size Used Free
Disk1 300 200 100
Disk2 500 100 400