From 9754eabef2340a8a6e64e9415cf1d6dfbf195c5a Mon Sep 17 00:00:00 2001 From: t-horikawa Date: Tue, 22 Oct 2024 09:56:10 +0900 Subject: [PATCH] prepare for PR (match src/tateyama/altimeter/service/core.cpp to the status quo, etc.) --- docs/altimeter-control-cli_ja.md | 124 --------------------- src/tateyama/altimeter/service/core.cpp | 14 ++- src/tateyama/proto/altimeter/request.proto | 7 -- 3 files changed, 11 insertions(+), 134 deletions(-) delete mode 100644 docs/altimeter-control-cli_ja.md diff --git a/docs/altimeter-control-cli_ja.md b/docs/altimeter-control-cli_ja.md deleted file mode 100644 index 77f06079..00000000 --- a/docs/altimeter-control-cli_ja.md +++ /dev/null @@ -1,124 +0,0 @@ -# Altimeter loggerをコントロールするCLI - -* 2023-10-17 horikawa (NT) - * 初版 - -## この文書について - -* Altimeter logger の設定や動作をDBAなどが外部から制御するCLIの仕様を示す - -## 基本的なデザイン - -* Altimeter logger の下記設定や動作を制御するCLIを提供する - * 有効化|無効化する - * log levelの変更 - * log対象とするステートメント実行時間閾値の変更 - * log rotateを起動する - -## CLI - -### 有効化、無効化 - -Altimeter loggerを有効化または無効化する。対象は、event logまたはaudit log - -```sh -tgctl altimeter {enable|disable} {event|audit} [--conf ] [--monitor ] -``` - -* parameter - * {enable|disable} logに対する操作を指定する。enableは有効化、disableは無効化 - * {event|audit} 操作対象logを指定する。eventはイベントログ、auditは監査ログ -* options - * `--conf` - 設定ファイルのパス、未指定の場合は既定の設定パスを利用 - * `--monitor` - 指定されたファイルにモニタリング情報を出力する -* exit status - * 操作を正しく実施できた場合、 `0` - * 操作を正しく実施できなかった場合、非 `0` -* standard error - * 非 `0` の exit status を返す場合、エラーの内容を表示 -* monitor - * 固有の出力は存在しない -* example - - ```sh - $ tgctl altimeter enable event - ``` - -### log level変更 - -Altimeter loggerのlog levelを変更する。対象は、event logまたはaudit log - -```sh -tgctl altimeter set {event_level|audit_level} [--conf ] [--monitor ] -``` - -* parameter - * {event_level|audit_level} 変更対象のlog levelを指定する。event_levelはevent logのlevel、audit_levelはaudit logのlevel - *  変更するlog level(数値) -* options - * `--conf` - 設定ファイルのパス、未指定の場合は既定の設定パスを利用 - * `--monitor` - 指定されたファイルにモニタリング情報を出力する -* exit status - * 操作を正しく実施できた場合、 `0` - * 操作を正しく実施できなかった場合、非 `0` -* standard error - * 非 `0` の exit status を返す場合、エラーの内容を表示 -* monitor - * 固有の出力は存在しない -* example - - ```sh - $ tgctl altimeter set event_level 10 - ``` - -### log対象とするステートメント実行時間閾値の変更 - -Altimeterのevent logにおけるlog対象ステートメント実行時間閾値を変更する。 - -```sh -tgctl altimeter set statement_duration [--conf ] [--monitor ] -``` - -* parameter - * 変更するlog対象ステートメント実行時間閾値、単位はナノ秒 -* options - * `--conf` - 設定ファイルのパス、未指定の場合は既定の設定パスを利用 - * `--monitor` - 指定されたファイルにモニタリング情報を出力する -* exit status - * 操作を正しく実施できた場合、 `0` - * 操作を正しく実施できなかった場合、非 `0` -* standard error - * 非 `0` の exit status を返す場合、エラーの内容を表示 -* monitor - * 固有の出力は存在しない -* example - - ```sh - $ tgctl altimeter set statement_duration 1000000000 - ``` - -### log rotate起動 - -Altimeter loggerのrotate操作を起動する。対象は、event logまたはaudit log - -```sh -tgctl altimeter rotate {event|audit} [--conf ] [--monitor ] -``` - -* parameter - * {event|audit} 操作対象logを指定する。eventはイベントログ、auditは監査ログ -* options - * `--conf` - 設定ファイルのパス、未指定の場合は既定の設定パスを利用 - * `--monitor` - 指定されたファイルにモニタリング情報を出力する -* exit status - * 操作を正しく実施できた場合、 `0` - * 操作を正しく実施できなかった場合、非 `0` -* standard error - * 非 `0` の exit status を返す場合、エラーの内容を表示 -* monitor - * 固有の出力は存在しない -* example - - ```sh - $ tgctl altimeter rotate event - ``` diff --git a/src/tateyama/altimeter/service/core.cpp b/src/tateyama/altimeter/service/core.cpp index a5ffa524..3788f5d1 100644 --- a/src/tateyama/altimeter/service/core.cpp +++ b/src/tateyama/altimeter/service/core.cpp @@ -34,8 +34,12 @@ using tateyama::api::server::response; class altimeter_helper_direct : public altimeter_helper { public: void enable(std::string_view) override { + // FIXME not implemented in altimeter + // ::altimeter::logger::enable(t); } void disable(std::string_view) override { + // FIXME not implemented in altimeter + // ::altimeter::logger::disable(t); } void set_level(std::string_view t, std::uint64_t v) override { ::altimeter::logger::set_level(t, v); @@ -53,8 +57,8 @@ bool tateyama::altimeter::service::core::operator()(const std::shared_ptrpayload(); if(!rq.ParseFromArray(data.data(), static_cast(data.size()))) { - LOG(ERROR) << "request parse error"; - return false; + LOG(INFO) << "request parse error"; + return true; // It indicates a possible malfunction in the communication system, but let's continue the operation. } res->session_id(req->session_id()); @@ -70,6 +74,8 @@ bool tateyama::altimeter::service::core::operator()(const std::shared_ptrdisable("event"); } + send_error(res, tateyama::proto::altimeter::response::ErrorKind::UNKNOWN, "event log [enable|disable] is not implemented"); // FIXME remove this and the following lines + return true; // Error notification is treated as normal termination. } if (log_settings.level_opt_case() == tateyama::proto::altimeter::request::LogSettings::LevelOptCase::kLevel) { auto v = log_settings.level(); @@ -88,6 +94,8 @@ bool tateyama::altimeter::service::core::operator()(const std::shared_ptrdisable("audit"); } + send_error(res, tateyama::proto::altimeter::response::ErrorKind::UNKNOWN, "audit log [enable|disable] is not implemented"); // FIXME remove this and the following lines + return true; // Error notification is treated as normal termination. } if (log_settings.level_opt_case() == tateyama::proto::altimeter::request::LogSettings::LevelOptCase::kLevel) { auto v = log_settings.level(); @@ -113,7 +121,7 @@ bool tateyama::altimeter::service::core::operator()(const std::shared_ptr(res, tateyama::proto::altimeter::response::ErrorKind::UNKNOWN, "log type for LogRotate is invalid"); - return false; + return true; // Error notification is treated as normal termination. } tateyama::proto::altimeter::response::LogRotate rs{}; (void) rs.mutable_success(); diff --git a/src/tateyama/proto/altimeter/request.proto b/src/tateyama/proto/altimeter/request.proto index 6e0c495a..70d6cfa1 100644 --- a/src/tateyama/proto/altimeter/request.proto +++ b/src/tateyama/proto/altimeter/request.proto @@ -37,13 +37,6 @@ message LogSettings { message Configure { // configure event log, or keep the current settings. -//// oneof log_opt { -//// // configuration for event log. -//// LogSettings event_log = 1; -//// -//// // configuration for audit log. -//// LogSettings audit_log = 2; -//// } oneof event_log_opt { // configuration for event log.