Floating License Server Help

User reporting

Reports in JetBrains Account

Choosing Floating License Server (FLS) from your online account will grant you access to license usage, by product, for a given time frame.

Detailed server usage statistic
  1. Log in at JetBrains Account with the credentials of your organization's profile administrator.

  2. Open the page of the license server team.

  3. Open the Server page.

  4. Choose to view usage for:

    • One day

    • 3 days

    • A week

    • A month

    • A year

Reports in FLS

The report contains (in table):

  • License usage:

    Asset Usage Table
    Asset Usage Graph

  • Count of requested licenses by each product of a particular version:

    Ticket Requests

  • Usage of a particular product and version by a particular user:

    Users and IPs to Products

  • Users with related IP addresses:

    IPs to Users

Emailed statistics

To obtain the same tabular statistics by email, configure an SMTP integration. FLS will not send the report automatically. To get the statistics, click Request report on the FLS dashboard. This button will appear after configuring an SMTP integration.

Configuration of SMTP integration

  1. Change to the FLS installation directory using the command line.

  2. Stop FLS using the following command:

    ./bin/license-server.sh stop
  3. Configure an email server:

    ./bin/license-server.sh configure \ --smtp.server mail.company.org \ --smtp.server.port 25

    where mail.company.org is the host of mail server and 25 is the port listened by the mail service.

  4. Configure the reports recipients:

    ./bin/license-server.sh configure \ --stats.recipients stat@company.org

    where stats@company.org are the recipients of the report. Use a comma to separate records if there are several recipients, for example recipient1@company.org,recipient2@company.org.

  5. Configure the address of the email sender:

    ./bin/license-server.sh configure \ --stats.from report-sender@company.org

    where report-sender@company.org is the address to be used as sender of email report.

  6. If the mail server requires authorisation, configure the username and password:

    ./bin/license-server.sh configure \ --smtp.server.username <mail-server-user> \ --smtp.server.password <mail-server-password>

    where <mail-server-user> is the username of mail server user and <mail-server-password> is the password of the user.

  7. Start FLS using the following command:

    ./bin/license-server.sh start
  8. Click Request report on the FLS dashboard to get the statistics.

Configuration of SMTP integration

  1. Stop FLS using the JetBrains License Service.

    Services Microsoft Management Console (MMC) (Control Panel > Administrative Tools > Services > JetBrains License Service)

  2. Change to the FLS installation directory using the command line.

  3. Configure an email server:

    .\apps\license-server\bin\license-server.bat configure ^ --smtp.server mail.company.org ^ --smtp.server.port 25

    where mail.company.org is the host of mail server and 25 is the port listened by the mail service.

  4. Configure the reports recipients:

    .\apps\license-server\bin\license-server.bat configure ^ --stats.recipients stat@company.org

    where stats@company.org are the recipients of the report. Use a comma to separate records if there are several recipients, for example recipient1@company.org,recipient2@company.org.

  5. Configure the address of the email sender:

    .\apps\license-server\bin\license-server.bat configure ^ --stats.from report-sender@company.org

    where report-sender@company.org is the address to be used as sender of email report.

  6. If the mail server requires authorisation, configure the username and password:

    .\apps\license-server\bin\license-server.bat configure ^ --smtp.server.username <mail-server-user> ^ --smtp.server.password <mail-server-password>

    where <mail-server-user> is the username of mail server user and <mail-server-password> is the password of the user.

  7. Start FLS using the JetBrains License Service.

  8. Click Request report on the FLS dashboard to get the statistics.

Lack of available licenses notification

By default it's disabled, requires a configured SMTP, reports once an hour (frequency is non-configurable). To enable it, use the following commands:

  1. Change to the FLS installation directory using the command line.

  2. Stop FLS using the following command:

    ./bin/license-server.sh stop
  3. Run the following in the command line:

    ./bin/license-server.sh configure \ --reporting.out.of.license.threshold 90
    where 90 = % of all licenses occupied by users, a trigger threshold which initializes emails sending.

  1. Stop FLS using the JetBrains License Service.

    Services Microsoft Management Console (MMC) (Control Panel > Administrative Tools > Services > JetBrains License Service)

  2. Change to the FLS installation directory using the command line.

  3. Run the following in the command line:

    .\apps\license-server\bin\license-server.bat configure ^ --reporting.out.of.license.threshold 90
    where 90 = % of all licenses occupied by users, a trigger threshold which initializes emails sending.

Statistics via API

There are 2 formats of the usage statistics reported via API in JSON format:

Historical data in from-date-to-date format from ZIP Archive

  1. Change to the FLS installation directory using the command line.

  2. Stop FLS using the following command:

    ./bin/license-server.sh stop
  3. Configure the token that later will be used as the parameter of a POST request to obtain statistics via API run in the command line:

    ./bin/license-server.sh configure \ --reporting.token <TOKEN>

    where <TOKEN> is a random combination of digits/letters, which you'll use as a secret key to access the statistics.

  4. Start FLS using the following command:

    ./bin/license-server.sh start
  5. Send a POST request to http(s)://<fls_hostname>:<fls_port>/reportApi with the following parameters:

    Parameter

    Description

    granularity

    Granularity of the report, 0 to 4 from hourly to yearly respectively

    start

    Report start date in YYYY-MM-DD format

    end

    Report end date in YYYY-MM-DD format

    token

    <TOKEN> configured at step 2

Historical data in from-date-to-date format from ZIP Archive

  1. Stop FLS using the Services Microsoft Management Console (MMC) (Control Panel > Administrative Tools > Services > JetBrains License Service)

  2. Change to the FLS installation directory using the command line.

  3. Configure the token that later will be used as the parameter of a POST request to obtain statistics via API run in the command line:

    .\apps\license-server\bin\license-server.bat configure ^ --reporting.token <TOKEN>

    where <TOKEN> is a random combination of digits/letters, which you'll use as a secret key to access the statistics.

  4. Start FLS using the JetBrains License Service.

  5. Send a POST request to http(s)://<fls_hostname>:<fls_port>/reportApi with the following parameters:

    Parameter

    Description

    granularity

    Granularity of the report, 0 to 4 from hourly to yearly respectively

    start

    Report start date in YYYY-MM-DD format

    end

    Report end date in YYYY-MM-DD format

    token

    <TOKEN> configured at step 2

Get real-time statistics in per-user format

  1. Configure the reporting token as described above.

  2. Send GET request to http(s)://<fls_hostname>:<fls_port>/tickets-report.json?token=<TOKEN> where <TOKEN> is the secret token configured during the previous step.

Total licenses list

Since build #17768 there is an endpoint to get the list of all licenses located currently on FLS.

  1. Configure the reporting token as described above.

  2. Send the GET request to http(s)://<fls_hostname>:<fls_port>/licenses-report.json?token=<TOKEN> where <TOKEN> is equal to the token configured above.

Granularity is not used in this report.

Examples

Get hourly report for period

Request:

curl -X POST \ --data "granularity=0&start=2017-09-12&end=2017-09-14&token=<TOKEN>" \ "http://0.0.0.0:8080/reportApi"
curl -X POST ^ --data "granularity=0&start=2017-09-12&end=2017-09-14&token=<TOKEN>" ^ "http://127.0.0.1:80/reportApi"

Output:

{ "Overall": [ { "License": "IntelliJ IDEA Ultimate 2017.2", "Max usage": 1, "Peak time": "14/09/2017 10:04", "Max available": 1 }, { "License": "IntelliJ IDEA Ultimate Toolbox", "Max usage": 0, "Max available": 1 }, { "License": "ReSharper C++ 2016.2", "Max usage": 0, "Max available": 7 }, { "License": "dotCover 2016.2", "Max usage": 0, "Max available": 9 }, { "License": "dotMemory 2016.2", "Max usage": 0, "Max available": 10 }, { "License": "dotTrace 2016.2", "Max usage": 0, "Max available": 10 } ], "License Usage Hourly": [ { "time": "14/09/2017 10:00", "key": "IntelliJ IDEA Ultimate 2017.2", "count": 1 } ], "License Requests Hourly": [ { "time": "14/09/2017 10:00", "key": "IntelliJ IDEA Ultimate 2017.2", "count": 1 } ], "Users": [ { "user": "user1", "ips": [ "127.0.0.1" ], "requests": [ "IntelliJ IDEA Ultimate 2017.2" ] } ] }

Get real-time statistics

Request:

curl "http://0.0.0.0:8080/tickets-report.json?token=<TOKEN>"
curl "http://127.0.0.1:80/tickets-report.json?token=<TOKEN>"

Output:

[ { "userId": "testuser@localhost", "clientId": "d001a808-1d3f-4a05-8318-7053180059b7", "ip": "127.0.0.1", "license": "IntelliJ IDEA Ultimate Toolbox", "product": "II:2017.2", "issued": "2018-03-27T18:22:46.689+0300", "last_seen": "2018-03-27T18:42:54.249+0300" } ]

Get all licenses located currently

Request:

curl "http://0.0.0.0:8080/licenses-report.json?token=<TOKEN>"
curl "http://127.0.0.1:80/licenses-report.json?token=<TOKEN>"

Output:

{ "licenses": [ { "name": "IntelliJ IDEA Ultimate 12.0", "available": 1, "allocated": 0, "allocatedDetails": "/tickets/II?version=12000&trueUp=false" }, { "name": "IntelliJ IDEA Ultimate 2016.2", "available": 1, "allocated": 0, "allocatedDetails": "/tickets/II?version=2016200&trueUp=false" }, { "name": "IntelliJ IDEA Ultimate Toolbox", "available": 0, "allocated": 1, "allocatedDetails": "/tickets/II?version=2017300&trueUp=false" }, { "name": "All Products Pack Fallback", "available": 1, "allocated": 0, "allocatedDetails": "/tickets/ALL?trueUp=false" }, { "name": "All Products Pack Toolbox", "available": 2, "allocated": 0, "allocatedDetails": "/tickets/ALL?trueUp=false" } ] }
Last modified: 5 December 2019