integration.jsonファイルには、ペイロードを定義します。
次の図は、単純なintegration.jsonファイルの中身を色分けしたものです。隣の表にファイル内のオブジェクトの機能を示します。
これら2つのケースでは、オブジェクトの最新のレポートの値(識別子で特定)のみが保持されます。
デフォルトでは、すべての数値式が文字列として統合ペイロードに報告されます。「identifiers」と「attributes」には文字列値のみを定義できます。「dataPoints」には文字列値と数値を定義できます。数値は、次のいずれかの修飾キーを使用して定義します。
rateと計算処理を組み合わせて使用すると、ポーリング間隔中の平均受信率を1秒あたりのメガバイト数で表すことができます。
integration.jsonファイルでは、加算、減算、乗算、除算の計算処理を使用することができます。次に、JSONファイルに乗算、除算、および合計の計算処理を指定した例を示します。
統合パックのキーワードstringは、通常ASCII文字ではなく16進数形式で出力されるOCTET STRINGまたはOCTET STRINGから派生した専用の型を強制的に使用するために実装されています。
多くのOCTET STRINGには、MACアドレスやWWNなどのバイナリ データが含まれています。
"interface_mac": { "mibModuleName": "IF-MIB", "objectName": "ifPhysAddress" }
PhysAddress ::= TEXTUAL-CONVENTION DISPLAY-HINT "1x:" STATUS current DESCRIPTION "Represents media- or physical-level addresses." SYNTAX OCTET STRINGifPhysAddressがデフォルトの16進数で出力された場合は、次のような結果になります。
"interface_mac": "00:50:56:A2:07:E7"ただし、ASCIIとして解釈するOCTET STRINGまたはOCTET STRINGから派生した専用の型がある場合は、「string」キーワードを使用できます。
"string_test_1": { "string": { "mibModuleName": "IF-MIB", "objectName": "ifPhysAddress" } }, "string_test_2": { "string": [ { "mibModuleName": "IF-MIB", "objectName": "ifPhysAddress" }, { "const": "JSD" }, { "mibModuleName": "IF-MIB", "objectName": "ifPhysAddress" } ] }このキーワードを入力するときは、既存の文字列の連結ルールに従い、次のように単語間に半角スペースを1つ挿入します。
"string_test_1": "PV¢ç", "string_test_2": "PV¢ç JSD PV¢ç"
「string」キーワードは1つの単語または単語のリストとして機能しますが、ネストされた表現には使用できません。ネストされた表現はdataPointの表現でのみサポートされます。「string」表現をdataPoint表現で使用すると、次のようなエラーになります。
java.lang.IllegalArgumentException: Integration pack 'GenericSwitch32' index 'snmp_generic_interface_32' section 'dataPoints' key 'string_test_3' unsupported JSON numeric expression '{"string":{"mibModuleName":"IF-MIB","objectName":"ifPhysAddress"}}'
DisplayString、SnmpAdminStringなどの一部のOCTET STRING派生型では、「string」キーワードよりもハードコーディングが優先されます。これは、SnmpAdminStringがUTF-8専用にエンコードされていて、それを正しく処理するためです。これに対し、「string」キーワードは、1文字をシングル バイトのASCIIコードとみなすsnmp_frameworkから返されるデフォルトの文字列を強制的に表示します。