From 1f67da7f4bce160fba5fab6848747c3dc59cff26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luismi=20Ram=C3=ADrez?= Date: Mon, 27 Dec 2021 12:20:42 +0100 Subject: [PATCH] Add RunningInContainer function to extension This function checks if the agent is running in a container. The Ruby and the Elixir integrations already use this function in the diagnose report. This commit makes the function available to be used in the integration. --- ...tainer-function-is-now-available-from-the-extension.md | 7 +++++++ packages/nodejs-ext/ext/appsignal_extension.cpp | 8 ++++++++ 2 files changed, 15 insertions(+) create mode 100644 packages/nodejs-ext/.changesets/runningincontainer-function-is-now-available-from-the-extension.md diff --git a/packages/nodejs-ext/.changesets/runningincontainer-function-is-now-available-from-the-extension.md b/packages/nodejs-ext/.changesets/runningincontainer-function-is-now-available-from-the-extension.md new file mode 100644 index 00000000..f4939d09 --- /dev/null +++ b/packages/nodejs-ext/.changesets/runningincontainer-function-is-now-available-from-the-extension.md @@ -0,0 +1,7 @@ +--- +bump: "patch" +type: "add" +--- + +RunningInContainer function is now available from the extension. It checks if the agent is running +in a container. diff --git a/packages/nodejs-ext/ext/appsignal_extension.cpp b/packages/nodejs-ext/ext/appsignal_extension.cpp index 5c571bab..f97311b6 100644 --- a/packages/nodejs-ext/ext/appsignal_extension.cpp +++ b/packages/nodejs-ext/ext/appsignal_extension.cpp @@ -33,6 +33,12 @@ Napi::Value DiagnoseRaw(const Napi::CallbackInfo &info) { return Napi::String::New(env, str.buf, str.len); } +Napi::Value RunningInContainer(const Napi::CallbackInfo &info) { + bool running_in_container = !!appsignal_running_in_container(); + + return Napi::Value::From(info.Env(), running_in_container); +} + // Data Array encoding Napi::Value CreateDataArray(const Napi::CallbackInfo &info) { @@ -632,6 +638,8 @@ Napi::Object CreateExtensionObject(Napi::Env env, Napi::Object exports) { extension.Set(Napi::String::New(env, "stop"), Napi::Function::New(env, Stop)); extension.Set(Napi::String::New(env, "diagnoseRaw"), Napi::Function::New(env, DiagnoseRaw)); + extension.Set(Napi::String::New(env, "runningInContainer"), + Napi::Function::New(env, RunningInContainer)); return extension; }