From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: Ilya Konyukhov <runsfor@gmail.com>, tarantool-patches@dev.tarantool.org
Cc: alexander.turenko@tarantool.org
Subject: Re: [Tarantool-patches] [PATCH 1/2] feedback: determine runtime platform info
Date: Sun, 7 Jun 2020 18:45:39 +0200 [thread overview]
Message-ID: <36bc5d2e-1981-54ed-befa-095debab6805@tarantool.org> (raw)
In-Reply-To: <d3de1c532af7b0b4ef107955a8b7f8cf1c363675.1591345474.git.runsfor@gmail.com>
Hi! Thanks for the patch!
See 4 comments below.
On 05/06/2020 10:35, Ilya Konyukhov wrote:
> This patch detect which platform instance is running on.
> It uses luajit `jit` module to get OS name and architecture.
> Se more in [docs page](https://luajit.org/ext_jit.html).
>
> Also it tries to figure out whether instance is running
> inside docker container or not. It's difficult know
> accurately but one of the most stable and simple ways
> at the same time is to look in
> [`/proc/1/cgroup`](https://stackoverflow.com/a/20012536/1881632)
> file.
>
> Closes #3608
> Related to #4943
> ---
> cmake/os.cmake | 2 +-
> src/box/lua/feedback_daemon.lua | 29 ++++++++++++++++++++++++++-
> test/box-tap/feedback_daemon.test.lua | 3 +--
> 3 files changed, 30 insertions(+), 4 deletions(-)
>
> diff --git a/cmake/os.cmake b/cmake/os.cmake
> index 905be61df..462bdccc3 100644
> --- a/cmake/os.cmake
> +++ b/cmake/os.cmake
> @@ -78,7 +78,7 @@ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
>
> #
> # Default build type is None, which uses depends by Apple
> -# command line tools. Also supportting install with MacPorts.
> +# command line tools. Also supporting install with MacPorts.
1. Lets better avoid unnecessary diff, not related to the patch
subject.
> #
> if (NOT DARWIN_BUILD_TYPE)
> set(DARWIN_BUILD_TYPE None CACHE STRING
> diff --git a/src/box/lua/feedback_daemon.lua b/src/box/lua/feedback_daemon.lua
> index 95130d696..2ce49fb22 100644
> --- a/src/box/lua/feedback_daemon.lua
> +++ b/src/box/lua/feedback_daemon.lua
> @@ -26,13 +26,40 @@ local function get_fiber_id(f)
> return fid
> end
>
> -local function fill_in_feedback(feedback)
> +local function detect_docker_environment()
> + local fh = fio.open('/proc/1/cgroup', {'O_RDONLY'})
> + if not fh then return false end
2. Please, write conditions and their bodies on
separate lines. In the second patch too.
> +
> + -- fh:read() doesn't read empty files
> + local big_enough_chunk = 4096
> + local ok = fh:read(big_enough_chunk)
> + fh:close()
> + if not ok then return false end
> +
> + if not string.find(ok, 'docker') then return false end
> +
> + return true
> +end
> +
> +local function fill_in_base_info(feedback)
> if box.info.status ~= "running" then
> return nil, "not running"
> end
> feedback.tarantool_version = box.info.version
> feedback.server_id = box.info.uuid
> feedback.cluster_id = box.info.cluster.uuid
> +end
> +
> +local function fill_in_platform_info(feedback)
> + feedback.os = jit.os
> + feedback.arch = jit.arch
> + feedback.is_docker = detect_docker_environment()
3. detect_docker_environment() involves file reading, up to 4KB.
On my machine it was 1KB. It would be better to avoid calling it
multiple times. I suggest you to call this function only once, and
then re-use the result. It can't change anyway.
> +end
> +
> +local function fill_in_feedback(feedback)
> + fill_in_base_info(feedback)
> + fill_in_platform_info(feedback)
> +
> return feedback
> end
>
> diff --git a/test/box-tap/feedback_daemon.test.lua b/test/box-tap/feedback_daemon.test.lua
> index d4adb71f1..c36b2a694 100755
> --- a/test/box-tap/feedback_daemon.test.lua
> +++ b/test/box-tap/feedback_daemon.test.lua
> @@ -131,5 +131,4 @@ daemon.start()
> daemon.send_test()
> daemon.stop()
>
> -test:check()
> -os.exit(0)
> +os.exit(test:check() and 0 or 1)
4. Unnecessary diff, not related to the issue.
next prev parent reply other threads:[~2020-06-07 16:45 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 8:35 [Tarantool-patches] [PATCH 0/2] Extend feedback module report Ilya Konyukhov
2020-06-05 8:35 ` [Tarantool-patches] [PATCH 1/2] feedback: determine runtime platform info Ilya Konyukhov
2020-06-07 16:45 ` Vladislav Shpilevoy [this message]
2020-06-09 23:05 ` Илья Конюхов
2020-06-11 19:32 ` Vladislav Shpilevoy
2020-07-01 0:16 ` Alexander Turenko
2020-07-05 2:14 ` Alexander Turenko
2020-06-05 8:35 ` [Tarantool-patches] [PATCH 2/2] feedback: collect db engines and index features Ilya Konyukhov
2020-06-07 16:45 ` Vladislav Shpilevoy
2020-06-09 23:06 ` Илья Конюхов
2020-06-11 19:32 ` Vladislav Shpilevoy
2020-06-17 8:59 ` Илья Конюхов
2020-06-17 22:53 ` Vladislav Shpilevoy
2020-06-18 15:42 ` Илья Конюхов
2020-06-18 23:02 ` Vladislav Shpilevoy
2020-06-19 14:01 ` Илья Конюхов
2020-06-19 23:49 ` Vladislav Shpilevoy
2020-06-22 8:55 ` Илья Конюхов
2020-07-01 0:15 ` Alexander Turenko
2020-07-03 12:05 ` Илья Конюхов
2020-07-05 2:10 ` Alexander Turenko
2020-06-23 21:23 ` [Tarantool-patches] [PATCH 0/2] Extend feedback module report Vladislav Shpilevoy
2020-07-13 13:47 ` Kirill Yukhin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=36bc5d2e-1981-54ed-befa-095debab6805@tarantool.org \
--to=v.shpilevoy@tarantool.org \
--cc=alexander.turenko@tarantool.org \
--cc=runsfor@gmail.com \
--cc=tarantool-patches@dev.tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH 1/2] feedback: determine runtime platform info' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox