Logo of AppSignal

Menu
Docs navigation

Supported Operating Systems

The AppSignal integrations for Ruby and Elixir contains native extensions and a separate lightweight agent process. These native extensions are supported on most Linux distributions, FreeBSD and macOS/OSX. If an Operating System you use is not supported, please get in touch.

Support table

Operating System 32-bit support 64-bit support
macOS/OSX (darwin) 1
Linux 2
     - Alpine Linux 3
     - CentOS
     - Debian
     - Fedora
FreeBSD 1
Microsoft Windows 4
  • 1: Does not support host metrics (yet).
  • 2: Depending on the integration version some older versions of the Operating System are supported. See the Linux section for more information.
  • 3: Supported since AppSignal for Ruby version 2.1.x and AppSignal for Elixir version 0.11.0.
  • 4: Untested with the Windows subsystem for Linux.

Linux

AppSignal tries to support Linux as best as possible, but some changes in our build process have caused some problems with supporting certain Linux distributions and versions. Our agent and extension are compiled against libc, and based on which version of libc we compile against we support certain older versions of Linux distributions and some not.

AppSignal support for versions of libc has changed over the past few versions of the Ruby gem and Elixir package.

This is the list of version of libc/musl AppSignal was compiled against over the last version of our integrations:

  • AppSignal for Ruby v1.0.0 - v2.0.x
    AppSignal for Elixir v0.0.x - v0.10.x
    • libc v2.5
    • musl N/A
  • AppSignal for Ruby v2.1.x - v2.3.x
    AppSignal for Elixir v0.11.x - v1.3.x
  • AppSignal for Ruby v2.4.x and higher
    AppSignal for Elixir v1.4.x and higher

If your system uses an older libc version than we compile against you will experience problems installing or running the AppSignal agent. If this is the case you can instead opt-in to the musl build, which doesn't have this issue. This should no longer be a problem for AppSignal Ruby gem v2.4.1 and higher, automatic detection for older libc versions was added and it will automatically switch to the musl build.

To opt-in to the musl build manually, add the APPSIGNAL_BUILD_FOR_MUSL environment variable to your system environment before installing AppSignal and compiling your application.

1
2
3
4
5
6
7
8
9
10
# For Ruby
export APPSIGNAL_BUILD_FOR_MUSL=1
gem install appsignal
# or with Bundler
bundle install

# For Elixir
export APPSIGNAL_BUILD_FOR_MUSL=1
mix deps.get
mix compile

You can see which version of libc your system uses by running the following command: ldd --version 2>&1

Example of output on Ubuntu 12.04:

1
2
3
4
5
6
$ ldd --version 2>&1
ldd (Ubuntu EGLIBC 2.15-0ubuntu10.18) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Alpine Linux

Alpine Linux support was added in version 2.1.0 of the AppSignal for Ruby gem. Our AppSignal for Elixir package supports Alpine Linux since version 0.11.0.

In AppSignal for Ruby version 2.4.0 and AppSignal for Elixir 1.4.0 we started shipping a separate build for Alpine Linux. If you upgraded from an earlier version and are have problems compiling your app, our detection isn't working properly. See our upgrading issue for more information.

For the Ruby gem, detection is based on the output from ldd --version. For the Elixir package we listen to the output of :erlang.system_info(:system_architecture).

If your app is unable to call the ldd program or the detection is off for some reason, you can force the Alpine Linux compatible build by providing a special environment variable on install.

1
2
3
4
5
6
7
8
9
10
# For Ruby
export APPSIGNAL_BUILD_FOR_MUSL=1
gem install appsignal
# or with Bundler
bundle install

# For Elixir
export APPSIGNAL_BUILD_FOR_MUSL=1
mix deps.get
mix compile

Ruby

For the Ruby gem add this to your Gemfile:

1
gem "appsignal", ">= 2.1.0" # or a newer version

For the latest available version see the full list on RubyGems.org and if you run into any problems please let us know.

Elixir

If you're using Elixir, add this to your mix.exs file:

1
{:appsignal, ">= 1.0.0"} # or a newer version

For the latest available version see the full list on Hex.pm and if you run into any problems please let us know.

CentOS

CentOS is fully supported by the AppSignal extension. Depending on your CentOS version you may need to select another build type for AppSignal Ruby gem v2.4.0 and AppSignal for Elixir v1.4.0 and higher.

For CentOS 7 and higher there is no problem upgrading to AppSignal for Ruby v2.4.0 and AppSignal for Elixir 1.4.0 and higher.

For CentOS 6 and older versions you will need to opt-in to the musl build for AppSignal instead. For more information, see the Linux section.

FreeBSD

Support for FreeBSD systems was added in AppSignal for Ruby gem 2.4.0 and AppSignal for Elixir package 1.4.0. It currently does not support the host metrics feature.

macOS

macOS (OSX) is supported by AppSignal for Ruby and Elixir. It currently does not support the host metrics feature.

Microsoft Windows

We currently have no plans to support the Microsoft Windows Operating System. We do try to make the AppSignal libraries installable on Microsoft Windows without any errors or build issues so that the app it's installed in continues to operate.

If you use Microsoft Windows and would like us to support it, send us an e-mail.

Ruby

Do make sure you have the RubyInstaller DevKit installed before installing AppSignal. Otherwise there will be the following error during installation of our C-extension.

1
2
3
4
5
6
7
$ gem install appsignal
Fetching appsignal 2.2.1
Installing appsignal 2.2.1 with native extensions
Gem::InstallError: The 'appsignal' native gem requires installed build tools.
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'