Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Download WSO2 BAM 2.0 from location: http://wso2.com/products/business-activity-monitor.
  2. Change port offset of BAM to 1 by editing the file <BAM_HOME>/repository/conf/carbon.xml file (search for the offset node).

    <Offset>1</Offset>

    This increments all ports used by the server by 1, which means the BAM server will now run on port 9444. Port offset avoids possible port conflicts when multiple WSO2 products are run in same host.

    Warning

    Important: After offsetting the default BAM port in carbon.xml file, you must also change the default API endpoints and the Thrift port (if APIM components are in a distributed setup) accordingly. See Changing the Default Ports with Offset.

  3. Copy the file <APIM_HOME>/statistics/API_Manager_Analytics.tbox to directory, <BAM_HOME>/repository/deployment/server/bam-toolbox. If you use Oracle DB to store statistical data, copy API_Manager_Analytics_Oracle.tbox instead.

    If this folder is not in the BAM installation home by default, create it and copy the file.

    The API Manager Analytic Toolbox

    A toolbox is an installable archive, with a .tbox extension. It contains necessary artifacts that models a complete usecase, from collecting data, analyzing through defined Hive scripts to summarizing data through gadgets, Jaggery scripts and other dashboard components.

  4. Configure a database to which BAM can write analyzed information to. This information is retrieved by the API Publisher before displaying on the corresponding statistical dashboards.
  5. Specify the data source definition in <BAM_HOME>/repository/conf/datasources/master-datasources.xml file as follows. 

    WSO2AM_STATS_DB is the datasource used to fetch analytical data. This example uses an H2 database. If you want to use a different database, see Changing the statistics database.

    Code Block
    languagehtml/xml
      <datasource>
              <name>WSO2AM_STATS_DB</name>
              <description>The datasource used for getting statistics to API Manager</description>
            <jndiConfig>
                    <name>jdbc/WSO2AM_STATS_DB</name>
                </jndiConfig>
              <definition type="RDBMS">
              <configuration>
                     <!-- JDBC URL to query the database -->
                     <url>jdbc:h2:<BAM_HOME>/repository/database/APIMGTSTATS_DB;AUTO_SERVER=TRUE</url>
                     <username>wso2carbon</username>
                     <password>wso2carbon</password>
                     <driverClassName>org.h2.Driver</driverClassName>
                     <maxActive>50</maxActive>
                     <maxWait>60000</maxWait>
                     <testOnBorrow>true</testOnBorrow>
                     <validationQuery>SELECT 1</validationQuery>
                     <validationInterval>30000</validationInterval>
                </configuration>
             </definition>
      </datasource>
  6. Because you changed the default BAM port in step 2 above, you must change the Cassandra port given in JDBC connection url in the following datasource configuration found in master-datasources.xml file. Since the port offset is 1, the Cassandra port must be 9161.

    Code Block
    languagehtml/xml
    <datasource>
               <name>WSO2BAM_CASSANDRA_DATASOURCE</name>
               <description>The datasource used for Cassandra data</description>
               <definition type="RDBMS">
                   <configuration>
                       <url>jdbc:cassandra://localhost:9161/EVENT_KS</url>
                       <username>admin</username>
                       <password>admin</password>
                   </configuration>
               </definition>
    </datasource>
    Note

    If you run the Hive scripts before changing the default Cassandra port according to the BAM port offset, you keep getting an exception. To overcome this, add the following line at the beginning of the Hive script and rerun.

    drop table <hive_cassandra_table_name>;
  7. Restart BAM server by running <BAM_HOME>/bin/wso2server.[sh/bat].

  8. If you want to host the BAM server on a different machine or change the running port, you must edit the <APIUsageTracking> node in <APIM_HOME>/repository/conf/api-manager.xml file as follows:

    Code Block
    languagehtml/xml
    <!--API usage tracker configuration used by the BAM data publisher in API gateway.-->
        <APIUsageTracking>
            <!-- Enable/Disable the API usage tracker.-->
            <Enabled>true</Enabled>
    
            <!-- API Usage Data Publisher.-->
            <PublisherClass>org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher</PublisherClass>
    
            <!--Thrift port of the remote BAM server.-->
            <ThriftPort>7612</ThriftPort>
    
            <!-- Server URL of the remote BAM server used to collect statistics. Must be specified in protocol://hostname:port/ format.-->
            <BAMServerURL>tcp://localhost:7612</BAMServerURL>
    
            <!--Administrator username to login to the remote BAM server.-->
            <BAMUsername>admin</BAMUsername>
    
            <!--Administrator password to login to the remote BAM server.-->
            <BAMPassword>admin</BAMPassword>
    
            <!--JNDI name of the data source to be used for getting BAM statistics.This data source should be defined in the master    
                datasources.xml file in conf/datasources directory.-->
            <DataSourceName>jdbc/WSO2AM_STATS_DB</DataSourceName>
        </APIUsageTracking>

...