Categories

Versions

Licensing

Starting from AI Hub version 10.1, Altair Unit Licensing is the default licensing mechanism for Server, Job Agents and Scoring Agents. Please see enforcing RapidMiner license if you need to still use RapidMiner licensing in your updated deployment of AI Hub.

Altair AI Hub and its components like Scoring Agents and Job Agents require a valid license to be used and support the following licensing mechanisms:

  1. Altair Unit Licensing
  2. RapidMiner Licenses which can be retrieved from my.rapidminer.com

The following sections outline each mechanism separately.

From 10.1.0 to 10.1.2, environment variable for license configuration has changed. If you already have a 10.1.0 deployment, please ensure to change LICENSE_ENABLE_ALTAIR=false (RapidMiner licensing) to LICENSE_MODE=RAPIDMINER or LICENSE_ENABLE_ALTAIR=true (Altair licensing) to LICENSE_MODE=ALTAIR_UNIT.

Altair Unit Licensing

Altair Unit Licensing is enabled by default for components of AI Hub.

All AI Hub applications report usage statistics via a so called License Agents to a central component called License Proxy. The License Proxy is responsible to talk to the actual Altair License Manager and is included in the default deployment. It needs to be running all the time.

In general, the License Proxy supports:

  1. On-premise for a locally deployed Altair License Manager, e.g., the lmx-serv binary, and
  2. Altair One integration

as operation modes.

When using Altair One integration, the License Proxy has support to authenticate against it with the following authentication types:

  1. Credentials: This requires setting your Altair One credentials into the environment of the License Proxy. It will automatically request an Auth Code and with the help of the Auth Code it will obtain a static/auth token.
  2. Auth Code: With the help of an Auth Code which can be obtained from Authorized Machines tab in the Altair One user profile web page, a static/auth token is generated.
  3. Static Token: A Static/Auth Token is directly used to authenticate against the Altair License Manager.

All of the configuration and authentication process only has to be done once, information is persisted afterwards and any subsequent restarts will re-use existing authentication information properly.

For more information about the License Proxy's functionality, configuration and authentication, please refer to the below sections.

License Agent

The License Agent is a library included into each AI Hub Server component which reports information to the deployment's License Proxy instance.

License Agents send periodic heartbeats to their assigned License Proxy. The URL of the License Proxy to reach out to is determined by LICENSE_AGENT_PROXY_URL.

In case the responsible License Proxy cannot reserve any new Altair Units, the License Agent shuts down the application.

License Agents identify their host system with a machineId. Ensure that ..._LICENSE_AGENT_MACHINE_ID= is properly set for each application. This machine identifier must be the same for all applications residing on the same host and share the same CPU resources. It must be different for different hosts. The identifier is used during leveling.

See available environment variables for

License Proxy

The License Proxy is an application which manages Altair Units and communicates with an Altair Unit Manager. This Altair Unit Manager can be Altair One or a local deployed version of it.

The License Proxy provides means to manage information sent by License Agents in an AI Hub deployment by listening for heartbeats from all connected License Agents. It is a unique application within one deployment/cluster, but should be present for each cluster if there are multiple, e.g., environments for development, staging, or production.

Main functionality of the License Proxy:

  • Draws and reserves units for AI Hub components from your Altair Unit Manager (5 units per CPU, leveling applied).
  • Manages life cycle of License Agents, e.g. enforces a shut down of the underlying application if no units are available or there has been no heartbeat.
  • Checks-in drawn units only after a certain timeout, so that AI Hub applications can be restarted and updated without directly giving back all drawn units

There are two ways how the License Proxy connects to an Altair Unit Manager: on premise and via Altair One. Those different modes require setting different environment variables which are described in the sections below.

On premise

By default, the on premise mode is enabled inside the License Proxy which sets LICENSE_PROXY_MODE=on_prem. In addition, you need to provide the path to your on-premise license manager via ALTAIR_LICENSE_PATH, e.g. with ALTAIR_LICENSE_PATH=6200@network-address, where 6200 is the default port of the Altair license manager and network-address is a network address which the License Proxy needs to be able to connect to. This environment variable is required in any case except for a local Altair License Manager (which is highly unlikely in production setup).

Altair One

Please make sure that the TZ time zone environment variable is properly set inside the License Proxy’s environment configuration.

Altair One can be used to manage your units. For this, you need to set LICENSE_PROXY_MODE=altair_one and provide necessary identity information which depends on how you like to authenticate against Altair One.

The authentication process is automatically executed on first start of the License Proxy depending on the configured environment variables. Information is persisted for any subsequent restarts of the License Proxy. For this to work, the License Proxy uses file system access at LICENSE_PROXY_BASE_DIR/home (also known as environment variable LICENSE_PROXY_HOME_DIR). By default, this is located at /license-proxy/home for the docker image. This location should be sticky, e.g. with a volume or host bind.

Altair One: Authenticate via credentials

The License Proxy authenticates against Altair One via your credentials.

Please set the following environment configuration accordingly.

Property Value
LICENSE_PROXY_MODE altair_one
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE credentials
LICENSE_UNIT_MANAGER_USER_NAME <your user name from Altair One>
LICENSE_UNIT_MANAGER_PASSWORD <your password from Altair One>

Altair One: Authenticate via auth code

The License Proxy authenticates against Altair One via your auth code.

To obtain a valid Auth Code, visit Altair One web page, click on your User Profile and then go to the Authorized Machines tab and click on the Generate button.

Please set the following environment configuration accordingly.

Property Value
LICENSE_PROXY_MODE altair_one
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE auth_code
LICENSE_UNIT_MANAGER_AUTH_CODE <your obtained Auth Code from Altair One>

Altair One: Authenticate via static/auth token

The License Proxy authenticates against Altair One via your static/auth token.

To obtain a valid Static/Auth Token, consult Altair One documentation how to manually generate it.

Please set the following environment configuration accordingly.

Property Value
LICENSE_PROXY_MODE altair_one
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE static_token
LICENSE_UNIT_MANAGER_TOKEN <your manually obtained static/auth token>

Environment variables

Authentication
Property Values Description
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE credentials, auth_code, static_token Determines how your account is identified against Altair One, e.g. via a auth code, static token or with your username and password.
LICENSE_UNIT_MANAGER_AUTH_CODE <your auth code> Only required when authentication type is set to auth_code. Set to specific Altair One auth code for your account which you can obtain from within the Altair One web interface.
LICENSE_UNIT_MANAGER_USER_NAME <your Altair One username> Only required when authentication type is set to credentials. Set to the user name of your Altair One account.
LICENSE_UNIT_MANAGER_PASSWORD <your Altair One password> Only required when authentication type is set to credentials. Set to the password of your Altair One account.
LICENSE_UNIT_MANAGER_TOKEN <your static/auth token> Only required when authentication type is set to static_token. Set to specific Altair One token for your account. Needs to be generated manually!
LICENSE_UNIT_MANAGER_RESET_AUTH_TOKEN false When mode=altair_one: Resets any stored authentication information when already persisted in LICENSE_PROXY_HOME_DIR.
Miscellaneous
Name Default Description
SERVER_PORT 9898 The default port the application is listening on
LICENSE_PROXY_MODE on_prem Specify the mode of the License Proxy, possible values are on_prem, altair_one. on_prem is the default
LICENSE_PROXY_BASE_DIR /license-proxy The default base directory
LICENSE_PROXY_ALJDK_DIR /license-proxy/aljdk The default ALJDK library directory
LICENSE_PROXY_HOME_DIR /license-proxy/home The default home directory (must be persisted)
LICENSE_PROXY_ALTAIR_LICENSING_DIR /license-proxy/home/altair-licensing The default Altair Licensing directory (used by Altair License Manager to persist configuration)
LICENSE_PROXY_CLEAN_ON_START_ALTAIR_LICENSING_DIR true If LICENSE_PROXY_ALTAIR_LICENSING_DIR should be wiped on each start of License Proxy (recommended)
LICENSE_PROXY_LOG_DIR /license-proxy/home/log The default log directory
LICENSE_PROXY_SCHEDULER_POOL_SIZE 5 Defines pool size for executing scheduled tasks
LICENSE_PROXY_SCHEDULER_THREAD_PRIORITY 10 Defines thread priority for executing scheduled tasks
KEYCLOAK_AUTH_SERVER_URL Specify Keycloak server URL, add a trailing slash!
KEYCLOAK_RESOURCE aihub-licenseproxy The Keycloak client
KEYCLOAK_REALM AIHub The realm to use for Keycloak
LICENSE_UNIT_MANAGER_LICENSE_LIBRARY_FOLDER LICENSE_PROXY_ALJDK_DIR Directory where Altair JDK library resides
LICENSE_UNIT_MANAGER_LICENSE_LIBRARY_PATH LICENSE_PROXY_ALJDK_DIR/liblmx-altair.so Altair JDK library path
LICENSE_UNIT_MANAGER_HEARTBEAT_SCHEDULE 60000 Time in milliseconds between sending heartbeat messages to the license server
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE credentials Authentication type for communicating with license server, possible values are credentials, auth_code, static_token. Must be set if the License Proxy mode is altair_one
LICENSE_UNIT_MANAGER_RESET_AUTH_TOKEN false When mode=altair_one: Resets any stored auth code when credentials already persisted a valid auth token (the static token) or used auth code
LICENSE_UNIT_MANAGER_AUTH_CODE Define license server auth code (valid for 15 minutes through Altair One web interface). Must be set if the authentication type is auth_code and License Proxy mode is altair_one
LICENSE_UNIT_MANAGER_USER_NAME Define license server username. Must be set if the authentication type is credentials and License Proxy mode is altair_one
LICENSE_UNIT_MANAGER_PASSWORD Define license server password. Must be set if the authentication type is credentials and License Proxy mode is altair_one
LICENSE_UNIT_MANAGER_TOKEN Define license server access token. Must be set if the authentication type is static_token and License Proxy mode is altair_one
ALTAIR_LICENSE_PATH When mode=on_prem: Define Altair license path allowing syntax of port@network-address
Altair License Manager

These environment variables are transposed to the underlying Altair License Manager.

Name Default Description
ALM_SUBSYS_ALT_IMAGE blank Specify an alternate name for the subsystem shared library, only valid on HHWU enabled platforms
ALM_ERROR_TRACKING blank Setting this environment variable will enable legacy logging (the value is irrelevant). This is equivalent to:
ALM_LOG_ENABLED=1
ALM_LOG_FACILITY=stderr
ALM_LOG_LEVEL=info
ALM_LOG_ENABLED blank Set to a non-zero length value to enable logging
ALM_LOG_LEVEL blank Valid values are none, error, info, debug which represent increasingly detailed output respectively.
If this environment variable is not set or it is set to an unrecognized value it will default to none.
ALM_LOG_FACILITY blank Valid values are stderr, syslog or file[:filename]. If the environment variable is not set, or if it is set to an unrecognized value it will default to stderr
ALM_NO_EXPIRE_WARNING blank If set disables expiry warning
ALM_EXPIRE_DAY_WARNING blank Specifies the number of days before license expiration before a warning message is given
ALM_NO_DURATION_WARNING blank If set disables low duration warning
ALM_DURATION_WARNING_HOURS blank Specifies the number of hours of remaining duration before a warning message is given
ALM_DISABLE_AAAS blank If set, will disable the abuse threshold detection system. this should only be used as directed by the licensing team
ALM_RES_TOKEN blank Reservation token
ALM_PROJECT blank A customer can use this to specify the project they are working on, this will be sent and logged in the transactional licensing logs on the server, if a nodelocked license is being used nothing is done with this information
ALM_DONGLE_ENABLED blank Enable dongle support, there are performance issues on Windows in some cases, so this is disabled by default
ALTAIR_LICENSE_PATH blank Path to altair license
LMX_LICENSE_PATH blank Path to license file(s)/server(s)
TMPDIR blank Path to temporary directory, *nix only, on windows we use GetTempPath() see the OS documentation for more information
ALM_HHWU blank Controls whether the Hosted HWU is used or not on platforms that support the hosted HWU system. If unset LMX will be tried and then the hosted HWU system if configured.
If set to true LMX will be disabled, if set to false the Hosted HWU system will be disabled
ALM_HHWU_TIMEOUT blank Controls timeout in seconds for soap send/recv
ALM_HHWU_CONFIG LICENSE_PROXY_ALTAIR_LICENSING_DIR Sets custom path to hosted HWU configuration information, use LICENSE_PROXY_ALTAIR_LICENSING_DIR to set it
ALM_HHWU_SSL_NO_AUTHENTICATION blank Turn off ssl validation, should only be used for troubleshooting
ALM_HHWU_USE_WININET blank Set to non-null value to use the wininet interface on windows. advantage is that it'll use same proxy settings as internet explorer, disadvantage is that it'll pop up a modal dialog when authentication is required, even if the password is stored.
ALM_HHWU_WININET_LOG blank Filename for wininet logging information. Only valid when using wininet interface on windows
ALM_HHWU_DISABLE_ZLIB blank Set to non-null value to disable zlib when using hosted licensing
LMX_USE_EPOLL blank Experimental Linux only, set to enable epoll for client connections
ALAKIT_ALT_ST_ENDPOINT blank Changes endpoint used for development
ALM_HHWU_ALT_ENDPOINT_CLIENT blank Changes endpoint used for development
ALM_HHWU_ALT_ENDPOINT_AUTH blank Changes endpoint used for development
ALM_HHWU_PROXY_HOST blank Proxy setting
ALM_HHWU_PROXY_PORT blank Proxy setting
ALM_HHWU_PROXY_USERNAME blank Proxy setting
ALM_HHWU_PROXY_PASSWORD blank Proxy setting
ALAKIT_PROXY_HOST blank Proxy setting
ALAKIT_PROXY_PORT blank Proxy setting
ALAKIT_PROXY_USERNAME blank Proxy setting
ALAKIT_PROXY_PASSWORD blank Proxy setting

Troubleshooting

  • In case you see an error message similar to Requested version number is greater than version number in license (Version found in license is: x), please make sure to upgrade your Altair License Manager.
  • In case you see an error that a feature has not been found, please make sure that the License Proxy's TZ time zone configuration is properly set.

Validate Altair Unit Licensing succeeded

To see whether Altair Unit Licensing is enabled, you can visit AI Hub Server's web page and go to Management -> Licenses. You should see altair_unit as illustrated in the below image.

img/aihub_altair_license.png

Leveling

Altair Unit licensing key metric are used CPU resources for which the License Proxy draws Altair Units from the configured Altair License Manager which can be deployed on-premise or use Altair One.

When applications reside on the same host, then only for the maximum number of CPU resources units are drawn. This is called leveling.

Example

  • Application A reports 2 CPU and resides on host 1
  • Application B reports 1 CPU and resides on host 1
  • Application C reports 4 CPU and resides on host 2
  • Application D reports 8 CPU and resides on host 2

Because application A and B and C and D reside on the same host. Units are only drawn for their maximum per host. In total, 2 (for A and B) and 8 (for C and D) units will be drawn.

Standalone Altair license for Scoring Agents

Standalone Altair license is only supported for edge devices running with the docker engine. Neither Kubernetes nor OpenShift deployments are supported.

The Scoring Agent is the only AI Hub Server application which also supports Altair standalone license (also known as node lock license).

By default, the .dat license file needs to be made available inside the Scoring Agent's docker container at the location /scoring-agent/home/resources/licenses/altair_standalone.dat. You can either copy the .dat file into the created docker volume or manually bind the path to a host system path, e.g. with /home/user/my.dat:/scoring-agent/home/resources/licenses/altair_standalone.dat.

In addition, you need to instruct the Scoring Agent to switch its license mode with LICENSE_MODE=ALTAIR_STANDALONE.

Because standalone license files are bound to MAC addresses, you need to expose the MAC address of your license file for the Scoring Agent's docker container. This can be achieved in two ways:

  1. Set the MAC address of your license file as a docker container argument, e.g. with --mac-address XX:XX:XX:XX:XX
  2. Set the docker container's network mode to host with --network host.

When configuration has been done properly, the Scoring Agent will start serving and print that it's using Altair standalone license:

InitializerService : Initializing Altair standalone license
InitializerService : Successfully checked out feature 'RapidMinerAIHub' with version '22'
InitializerService : Starting ALJDK check
InitializerService : Initialized Altair standalone license successfully
InitializerService : Altair standalone license information: RapidMinerAIHub (expires on yyyy-mm-dd at hh:mm)

RapidMiner Licensing

RapidMiner licenses for Server, Job Agent and Scoring Agent are available in the Licenses tab of my.rapidminer.com.

To use RapidMiner licensing, you have the option to set the environment variable LICENSE_LICENSE to the actual license content by copying and pasting it from the web interface, or you can place the license contents into the proper license location which depend on the application, though the environment variable key LICENSE_LOCATION is shared.

Server

For RapidMiner Server to pick up the license, add the license via LICENSE_LICENSE or add a .lic file with the license's content into the proper directory in the attached volume residing in /aihub/home/resources/rapidminer-server/license.lic in the docker image.

For more information about the home directory and available environment variables, please look into the settings table.

Scoring Agent

Scoring Agents work with a RTS license or a RapidMiner Server license. For the Server license you need to set SCORING_AGENT_ENABLE_SERVER_LICENSE=true. In either case, you need to properly add the license via LICENSE_LICENSE or add a .lic file with the license's content into the proper directory in the attached volume residing in /scoring-agent/home/resources/rapidminer-scoring-agent/license.lic (RTS license) or /scoring-agent/home/resources/rapidminer-server/license.lic (Server license) in the docker image.

For more information and available environment variables, please look into the settings table.

Job Agent

Job Agents synchronize RapidMiner licenses automatically. You only need to set LICENSE_LOCATION or LICENSE_LICENSE when you’ve disabled resource synchronisation.

Job Agents work with the RapidMiner Server license. When a Job Agent starts, the proper license is retrieved from RapidMiner Server. If you've disabled resource synchronisation, then add the license via LICENSE_LICENSE or add a .lic file with the license's content into the proper directory in the attached volume residing in /jobagent/home/resources/rapidminer-server/license.lic in the docker image.

For more information about available environment variables, please look into the settings table.

Enforce RapidMiner Licensing

Please make sure to properly set the LICENSE_MODE environment variable for all applications, don’t leave it blank or comment it in in your deployment files Otherwise the applications fall back to Altair Unit licensing!

By default, AI Hub 10.1+ uses Altair Unit Licensing. If you like to use RapidMiner licensing instead, set LICENSE_MODE=RAPIDMINER for each deployed application. This will require valid RapidMiner licenses being available either set by LICENSE_LICENSE or LICENSE_LOCATION.