License Server Help

User Reporting through the License Server

Aggregated historical data

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.

Configuration of SMTP integration

  1. Stop the license server.

  2. Configure an email server:

    <license_server_home>/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.

  3. Configure the reports recipients:

    <license_server_home>/bin/license-server.sh configure --stats.recipients stat@company.org

    where stats@company.org are the recipients of the report. Please use a comma to separate records if there are several recipients (recipient1@company.org, recipient2@company.org).

  4. Configure the address of the email sender:

    <license_server_home>/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.

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

    <license_server_home>/bin/license-server.sh configure --smtp.server.username mail-server-user@company.org --smtp.server.password mail-server-password

    where smtp.server.username is the username of mail server user and smtp.server.password is the password of the user.

  6. Start the license server.

Lack of available licenses notification

Since build #14451 the license server's administrator can set "Lack of available licenses" email notifications. By default it's disabled, requires a configured SMTP, reports once an hour (frequency is non-configurable).

To enable it, use the following command on stopped server:

<license_server_home>/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.

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 and real-time statistics in "per-user" format (available from build #16429):

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

  1. Stop the license server.

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

    <license_server_home>/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.

    • Start the license server.

    • Send a POST request to <license_server_URL>/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

    Test example:
    curl --data "granularity=0&start=2017-09-12&end=2017-09-14&token=TOKEN" http://0.0.0.0:8080/reportApi
    Test example 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"]}]}

    Real-time statistics in per-user format

    1. Stop the license server;

    2. Configure access token as described above;

    3. Send GET request to <license_server_URL>/tickets-report.json?token=TOKEN where TOKEN is the secret token configured during the previous step.

    Test example:
    curl http://0.0.0.0:8080/tickets-report.json?token=TOKEN
    Test example 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"}]

    Total licenses list

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

    1. Configure the reporting token as described above;

    2. Send the GET request to

      <license_server_URL>/licenses-report.json?token=TOKEN
      where TOKEN is equal to the token configured above.

    Test example:
    curl http://172.20.4.209:8080/licenses-report.json?token=EjohNoh6
    Test example 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: 16 January 2019