ウォッチ式
内容
casp1032jp
内容
ウォッチ式ではウォッチの監視対象を定義できます。ウォッチ式は、単純に属性の名前にしたり、複雑な式にしたりすることができます。ウォッチ式には、プリミティブと呼ばれる算術記号およびブール演算子で結びつけられた属性および定数値が含まれます。
式は、プリミティブの以下の優先順位に従って左から右の方向に評価されます。
優先順位 | プリミティブ |
1 | .# . |
2 | ( ) |
3 | DELTA ( ) COUNTER_DELTA ( ) |
4 | ! |
5 | | & |
6 | * / |
7 | + - |
8 | = = != >= <= < > |
プリミティブ
プリミティブは、通常、左辺と右辺のある式で使用されます。たとえば、A+B で、+ は、左辺 A と右辺 B の関係を定義しているプリミティブです。かっこは複数の構成要素がある式で評価の順序を示すために使用されます。
使用可能なプリミティブは以下のとおりです。
- +
- -
- *
- /
- ==
- !=
- >
- <
- >=
- <=
- ! (NOT)
- & (AND)
- ,
- |
- (
- )
- はい
- FALSE
- TIME
- DELTA
- MIN
- MAX
- 整数
- 実数
- UNSIGNED
- COUNTER_DELTA
- UNSIGNED64
プリミティブは機能および用途によってグループ分けできます。以下のプリミティブは、テキスト文字列または数値式の間でのみ使用できます。
- = = 等しい
- >= 次の値以上
- <= 次の値以下
- != 次の値と等しくない
- > 次の値より大きい
- < 次の値より小さい
注:
これらのプリミティブでは、オブジェクト ID、IP アドレス、およびブール値の属性タイプはサポートしていません。以下のプリミティブは、数値式のみで使用できます。
- + 加算
- - 減算
- * 乗算
- / 除算
注: これらのプリミティブでは、テキスト文字列、オブジェクト ID、IP アドレス、およびブール値の属性タイプはサポートしていません。サポートされているタイプは、以下の順序で評価されます。
- 実数
- タイム ティック、日付、ゲージ、カウンタ
- 列挙、整数
2 つのエレメントのレベルが異なる場合、高い方のレベルに合わせて評価されます。たとえば、5 + 5 は整数として評価され、5 + 5.1 は実数として評価されます。
注:
CA Spectrum
のモデル タイプでは、符号なし長整数を保存するためにカウンタ属性タイプが使用されます。たとえば、「テキスト文字列 + UNSIGNED(5)」のように、符号なしのプリミティブを不正に式で使用した場合、カウンタ タイプのエラー メッセージが返されます。以下のプリミティブは、ブール式のみで使用できます。
- ! 論理否定
- & AND
- | OR
以下のプリミティブは、記号ではなく単語で構成されます。
- TIME1970 年 1 月 1 日 00:00 グリニッジ標準時以降の現在の時刻を数値で示します。
- DELTAサンプリングのたびに属性への変更が計算されます。たとえば、整数属性 int1 上の 30 秒間隔でのウォッチでは、以下の DELTA 値が生成されることがあります。
Interval | 値 |
0 | 100, 0 |
30 | 1000 900 |
60 | 1000 0 |
90 | -1000 -2000 |
120 | 2000 3000 |
DELTA プリミティブは、以下の属性タイプをサポートしています。
- 整数
- 列挙値
- 実数
- 概略
- タイム ティック
- 日付
- ゲージ
- Counter
値が小さくなる可能性のないもの(タイム ティックおよびカウンタなど)に関しては、COUNTER_DELTA を使用します。
DELTA 式で属性のインスタンスを示す方法は以下のとおりです。
- DELTA (If_In_Octets.2)
- DELTA (If_Out_Octets.#)
- DELTA (TIME) もサポートされています。
注:
DELTA (TIME) とは、ウォッチによる現在および前回の評価の差です。これは内部属性を使用する計算でのみ有用です。外部属性を使用するレートの計算を生成するには、たとえば DELTA (XflDELTA (Sys_Up_Time) などのようにデバイスの時間を使用します。この場合、Sys_Up_Time はデバイスの時間カウンタです。- COUNTER_DELTA増分される符号なし整数であると想定されている属性の変化を計算します。この値はゼロにリセットされる場合もありますが、このプリミティブの結果は常に正の符号なし整数です。負の属性値は符号なしの大きな値として扱われます。COUNTER_DELTA プリミティブは、DELTA と同じ属性タイプをサポートするので、COUNTER_DELTA 式では DELTA での説明と同様の方法でインスタンスを指定できます。COUNTER_DELTA (TIME) もサポートされています。
- ATTRプリミティブに続くカッコ内の 16 進数値が属性識別子であることを示します。以下の例のように名前の重複がある場合、このプリミティブで属性を一意に識別できます。ATTR (<attr_id>)ATTR (<attr_id>).<instance id>ATTR (<attr_id>).#<attr_id> は、「0x」または「0X」の後に 1 ~ 8 の 16 進数値が続く値です。
- はいブール定数 True を定義します。
- FALSEブール定数 False を定義します。
- MAXたとえば (attribute x+1, attribute y-5) など、かっこ内のカンマで区切られた 2 つの式のうちの大きい方を指定します。この式は、オペランド、属性、またはプリミティブの任意の組み合わせで、数値(テキストでない文字列、オクテット、ブール値)を返します。
- MINたとえば (attribute x+1, attribute y-5) など、かっこ内のカンマで区切られた 2 つの式のうちの小さい方を指定します。この式は、オペランド、属性、またはプリミティブの任意の組み合わせで、数値(テキストでない文字列、オクテット、ブール値)を返します。
以下のプリミティブ(ポップアップ選択メニューには表示されません)を使用して、ウォッチによって監視しているリスト属性のインスタンスを指定できます。
- 。後に続く入力値によってリスト属性の特定のインスタンスを識別します。たとえば、If_In_Octets.2 は If_In_Octets 属性の 2 番目のインスタンスを意味します。IP アドレス テーブルの場合、指定子は 1 桁の数字ではなくアドレス全体である場合があります。ウォッチがアクティブ化されているモデルのどれにも、属性の指定したインスタンスが存在しない場合、ウォッチは失敗します。一部のモデルにはインスタンスがあり、その他にはない場合、存在するモデルではウォッチは成功し、その他では失敗します。
- .#ウォッチの詳細ビューに表示される現在のインスタンス指定子の値によって監視対象のインスタンスが決まることを示します。たとえば、インスタンス指定子の値が[すべて]の場合、If_In_Octets.# という式は、If_In_Octets 属性のすべてのインスタンスにウォッチを適用します。インスタンス指定子の値が[範囲](1-3)の場合は、インスタンス、1、2、3 のみが監視されます。インスタンスの範囲が指定されている場合、その範囲内のインスタンスの 1 つがモデルのいずれかになければ、ウォッチは失敗します。逆に、範囲内のすべてのインスタンスが存在するすべてのモデルでは、ウォッチが成功します。
データ タイプ
以下のテーブルは、さまざまなタイプの属性に割り当てることができるデータ タイプ値を示します。
注:
CA Spectrum
では、データ タイプが「オクテット文字列」の属性に対するウォッチはサポートしていませんが、この属性はテキスト文字列データ タイプを使用して監視できます。式結果タイプ | 使用可能な宛先属性タイプ |
ブール値 | 任意の数値タイプ |
テキスト文字列 | テキスト文字列 |
整数 | 整数、列挙、実数 |
列挙 | 整数、列挙、実数 |
実数 | 整数、列挙、実数 |
日付 | 実数、日付、タイム ティック、カウンタ、ゲージ、COUNTER64 |
タイム ティック | 実数、日付、タイム ティック、カウンタ、ゲージ、COUNTER64 |
カウンタ | 実数、日付、タイム ティック、カウンタ、ゲージ、COUNTER64 |
ゲージ | 実数、日付、タイム ティック、カウンタ、ゲージ、COUNTER64 |
オブジェクト ID | オブジェクト ID |
IP アドレス | IP アドレス |
COUNTER64 | COUNTER64、実数 |
たとえば、Int1 という名前の整数属性では、Int1 = 50.5(キャストが必要) という式は許可されますが、Int1 = 「文字列」は許可されません。
これらのルールは、ブール値およびテキスト文字列の属性に値を割り当てるときに最も柔軟です。いずれの式も 0 および 1 に評価し、ブール値属性に記述することができます。たとえば、ブール属性として Bool1 が与えられた場合、式 Bool1 = 500 * 50 + 450 は、Bool1 に TRUE を代入します。式 Bool1 = (500 * 50 + 450) * 0 は、Bool1 に FALSE を代入します。同様に、すべての式はテキスト文字列として評価できます。テキスト文字列属性として str1 がある場合、str1 = 500 + 50 の式では str1 に文字列 "550" が割り当てられます。
注:
テキスト文字列属性タイプでは、引用符で囲まれたテキスト文字列、および引用符に囲まれていない算術式を使用できます。たとえば、500 + 50 は、文字列 "550" になります。定数
式フィールドには、属性値および演算子と同様に定数を直接に入力できます。式に、以下のタイプの定数を入力できます。
- 符号なしの整数。1 以上の桁数の正の値。
- 実数。ゼロかそれ以上の連続した数字の後に小数点が続き、その後に 1 つ以上の連続した数字が続く実数。たとえば、.7、1.7、または 23.24 (7 ではない)。
- 符号付きの整数。1 桁以上の正または負の値。
- 二重引用符によって囲まれた文字の任意のシーケンスによって表されるテキスト文字列。たとえば、"a string"、"5.25"、または " "。
キャスト演算子
キャストでは、1 つのデータ タイプが別のデータ タイプに変換されます。キャストを行う際、キャストを行う値の一部が失われるリスクがあります。変換前のデータ タイプの範囲が、変換後のデータ タイプの範囲と適合するときにはキャストは不要です。
たとえば、「-1.79769 e+308
<=
-2,147,483,648」および 2,147,483,647 <=
1.79769 e+308」であるため、キャストを行わなくても実数に整数を割り当てることができます。しかし、カウンタに整数を割り当てる場合は範囲が重ならないので、キャストを行う必要があります。キャストは、使用しているデータ タイプで範囲のオーバーラップがある場合に正しく動作します。たとえば、整数 5 をカウンタにキャストすると期待どおりに動作します。しかし、負の数は「カウンタ」の範囲内に収まりません。したがって、「カウンタ」に -5 をキャストすると、コンピュータが数を表現する方法によって、4,294,967,291 という符号なし(正)の結果がもたらされます。逆に、整数に 2,147,483,647 より大きいカウンタ値をキャストすると、負の数が生成されます。
以下の演算子を使用すると、かっこで囲まれた式の結果を、選択したデータ タイプにキャストできます。
演算子 | キャストの結果 |
UNSIGNED | 通常 27 は符号付きの整数として処理されますが、「UNSIGNED (27)」は符号なし整数 27 と解釈されます。式内のこの演算子の後の負の数は、符号なしと解釈されます。例: UNSIGNED (-5) は 5 と解釈されます。-5 の数は符号なしで 4294967291 の値となります。 |
整数 | 式内のこの演算子に続く任意の実数は、最も近い整数に切り上げられるか切り下げられます。例: INTEGER (2.4) は 2 と解釈され、INTEGER (2.6) は 3 と解釈されます。 |
実数 | 例: REAL (3) は 3.0 と解釈されます。 |
リテラル数値のデータ タイプ
ウォッチ式の数値リテラルは、データ タイプを判別するために一連の範囲と比較されます。以下のテーブル内のタイプ列は数値リテラルの実際のデータ タイプであり、その列セルにリスト表示された他のタイプと直接交換可能です。
以下の表は、リテラル数値のデータ タイプがどのように決定されるかを示します。
Minimum | Maximum | タイプ |
-2,147,483,648 | 2,147,483,647 | 整数、ブール値*、列挙 |
0 | 4,294,967,295 | カウンタ、日付**、ゲージ、タイム ティック |
0 | 18,446,744,073,709,551,615 | COUNTER64 |
-1.79769 e+308 | 1.79769 e+308 | 実数 |
* ブール値データ タイプには、定数の TRUE および FALSE も使用できます。ゼロでないすべての値は TRUE と同等です。
** 1970 年 1 月 1 日 00:00:00 UTC(0) 以降の秒数です。