sonar-enable-logger-batch

入力レコードで渡された guid フィールド値に該当するロガーを一括で有効化します。run オプションを指定しない場合は実際に有効化せず、対象ロガーの存在有無だけを事前に確認できます。

コマンドプロパティ

項目説明
コマンドタイプ加工クエリ
必要な権限管理者
ライセンス使用量該当なし
並列実行非対応
分散実行データノードで実行(mapper)

構文

... | sonar-enable-logger-batch [run=BOOL]

オプション

run=BOOL
t を指定した場合のみ実際にロガー有効化APIを呼び出します(デフォルト: f)。指定しない、または f の場合は対象ロガーの存在有無のみを確認し、実際には有効化しないドライランとして動作します。

入力フィールド

フィールドタイプ必須/任意説明
guid文字列必須有効化するロガーのGUID

出力フィールド

入力レコードのすべてのフィールドをそのまま渡し、処理結果に応じて次のフィールドが追加されます。

フィールドタイプ説明
status文字列処理結果。success または failure。成功時には run=t の場合にのみ追加されます
_error文字列エラーメッセージ。エラーが発生した場合にのみ追加されます

エラーコード

パースエラー
エラーコードメッセージ説明
300143No permission to enable loggers管理者権限のないアカウントで実行した場合
ランタイムエラー
エラーコードメッセージ説明後処理動作
-Invalid UUID string: [value]guid フィールド値が有効なGUID形式でない場合クエリの実行を中断する

説明

sonar-enable-logger-batch コマンドは入力レコードごとに guid フィールド値で対象ロガーを照会した後に処理します。

  • guid フィールドがない場合は _error フィールドに guid field is required メッセージを追加して渡します。この際 run=t であれば status フィールドも failure に設定し、run を指定していなければ status フィールドは追加しません。
  • guid に該当するロガーが存在しない場合は run オプションの値に関係なく _errorstatus=failure を一緒に設定します。
  • 対象ロガーが存在し run=t であれば実際に有効化APIを呼び出します。呼び出しに失敗すると _error に失敗原因を記録し status=failure に設定し、成功すると status=success に設定します。
  • 対象ロガーが存在し run=t でない場合(デフォルト)はAPIを呼び出さず、入力レコードを変更せずそのまま渡します(ドライラン)。

guid フィールド値がGUID形式でない場合、個別レコードのエラーとして処理されずクエリの実行自体が中断されるため、事前に値の形式を検証することをお勧めします。

使用例

  1. 有効化対象を事前に確認(ドライラン)

    json "[{'guid': '550e8400-e29b-41d4-a716-446655440000'}]"
    | sonar-enable-logger-batch
    

    実際には有効化せず、対象ロガーの存在有無のみを確認します。

  2. 実際にロガーを有効化

    json "[{'guid': '550e8400-e29b-41d4-a716-446655440000'}]"
    | sonar-enable-logger-batch run=t
    
  3. 無効化されたロガーを照会して一括有効化

    sonar-loggers
    | search enabled == false
    | sonar-enable-logger-batch run=t
    | fields guid, name, status, _error
    

    現在無効化されているロガーをすべて照会した後、一括で有効化して処理結果を確認します。

変更履歴

sonar-enable-logger-batch コマンドはSonar 4.0.2609.0バージョンから利用可能です。Experimental アプリが提供していたコマンドをSonarコアに内蔵したものです。内蔵されていないバージョンでは、Experimental アプリをインストールして使用できます。 Experimental アプリでは sonar-enable-loggers という名前で提供されます。