Versions Compared

Key

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

...

  1. Open the <APIM_HOME>/repository/conf/api-manager.xml file.
  2. Carryout the following configuration changes under the <APIUsageTracking> element in the XML file.
    1. Enable Analytics by uncommenting and setting the <Enabled> element to true.

      Code Block
      <Enabled>false</Enabled>
    2. Define the <DASServerURL> value based on the Data Analytics Server (DAS) receivers.
      Example: {tcp://localhost:7612/,tcp://localhost:7613/}

    3. Define the <DASUsername> and <DASPassword> based on the DAS receivers.

    4. Define the <DASRestApiURL> element according to DAS master node.

    5. Set <DASRestApiUsername> and <DASRestApiPassword> according to the DAS REST.

    Use the default configurations for the other configurations in this section.

  3. Configure Statistics client.
    By default APIM is configured for the DAS REST client

    1. Select the RDBMS Client.
      Do this by setting the <StatisticClientProvider> element as follow in the <APIM_HOME>/repository/conf/api-manager.xml file.


      Code Block
      <!-- For APIM implemented Statistic client for DAS REST API -->
      <StatisticClientProvider>org.wso2.carbon.apimgt.usage.client.impl.APIUsageStatisticsRestClientImpl</StatisticClientProvider>
    2. Define a datasource for the RDBMS client.
      Do this by adding the following configuration in both the <APIM_HOME>/repository/conf/datasources/master-datasources.xml and <DAS_HOME>/repository/conf/datasources/master-datasources.xml files.

      Code Block
      <datasource>
          <name>WSO2AM_STATS_DB</name>
          <description>The datasource used for registry and user manager</description>
          <jndiConfig>
              <name>jdbc/WSO2AM_STATS_DB</name>
          </jndiConfig>
          <definition type="RDBMS">
              <configuration>
                  <url>jdbc:mysql://localhost:3306/APIM_STAT?autoReconnect=true&</url>
                  <username>root</username>
                  <password>pass</password>
                  <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                  <maxActive>50</maxActive>
                  <maxWait>60000</maxWait>
                  <testOnBorrow>true</testOnBorrow>
                  <validationQuery>SELECT 1</validationQuery>
                  <validationInterval>30000</validationInterval>
                  <defaultAutoCommit>false</defaultAutoCommit>
              </configuration>
          </definition>
      </datasource>
    3. Copy the appropriate RDBMS driver into both the DAS and APIM /repository/components/lib directories.
    4. Deploy CApp
      As the summarization logic is defined in the DAS CApp, you need to depoy it in all the DAS nodes. When configuring Analytics using XML, you need to deploy CApps manually; however, when configuring Analytics via the UI the CApp deployment takes place automatically. The APIM Analytics related CApps are found in the <APIM_HOME>/statistics/ directory. Use the API_Manager_Analytics_RDBMS.car for RDBMS configurations and the API_Manager_Analytics_REST.car for REST client. Use one of the following methods to deploy the CApp into DAS.
      • Copy the <APIM_HOME>/statistics/API_Manager_Analytics_RDBMS.car file into the <DAS_HOME>/repository/deployment/server/carbonapps directory. If the /carbonapps directory does not exist create the directory. Thereafter restart WSO2 DAS.
      • Start WSO2 DAS and sign in to the DAS Management Console. Navigate to the main menu and click Carbon Applications. Click Add and deploy the CApp from the <APIM_HOME>/statistics/ directory.

        Code Block
        <!--
                API usage tracker configuration used by the DAS data publisher and
                Google Analytics publisher in API gateway.
            -->
            <APIUsageTracking>
        
                <!--
                    Below property is used to enable API Manager analytics configuration via api-manager.xml
                    Enabling analytics via a configuration file can be useful in scenarios such as automated deployments where
                    UI integration is inconvenient.
        
                    If you uncomment this property, analytics configurations added via admin-dashboard UI will
                    get overwritten by tha configuration details provided below when you restart the server.
                -->
                <Enabled>true</Enabled>
        
                <!--
                    Server URL of the remote DAS/CEP server used to collect statistics. Must
                    be specified in protocol://hostname:port/ format.
        
                    An event can also be published to multiple Receiver Groups each having 1 or more receivers. Receiver
                    Groups are delimited by curly braces whereas receivers are delimited by commas.
                Ex - Multiple Receivers within a single group
                 tcp://localhost:7612/,tcp://localhost:7613/,tcp://localhost:7614/
                Ex - Multiple Receiver Groups with two receivers each
                         {tcp://localhost:7612/,tcp://localhost:7613},{tcp://localhost:7712/,tcp://localhost:7713/}
                -->
                <DASServerURL>{tcp://localhost:7612/}</DASServerURL>
        
                <!--
                    Administrator username to login to the remote DAS server.
                -->
                <DASUsername>admin</DASUsername>
        
                <!--
                    Administrator password to login to the remote DAS server.
                -->
                <DASPassword>admin</DASPassword>
        
                <!--
                    DAS REST API configuration
                        Set the values if .'org.wso2.carbon.apimgt.usage.client.impl.APIUsageStatisticsRestClientImpl'
                        is used as Statistic Client
                -->
                <DASRestApiURL>https://localhost:9444</DASRestApiURL>
                <DASRestApiUsername>admin</DASRestApiUsername>
                <DASRestApiPassword>admin</DASRestApiPassword>
        
                <!--
                    Below property is used to skip trying to connect to event receiver nodes when publishing events even if
                    the stats enabled flag is set to true.
                -->
                <SkipEventReceiverConnection>false</SkipEventReceiverConnection>
        
                <!--
                    API Usage Data Publisher.
                -->
                <PublisherClass>org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher</PublisherClass>
        
                <!--
                    If below property set to true,then the response message size will be calculated and publish 
                    with each successful API invocation event.
                -->
                <PublishResponseMessageSize>false</PublishResponseMessageSize>
                <!--
                        Data publishing stream names and versions of API requests, responses and faults. If the default values
                        are changed, the toolbox also needs to be changed accordingly.
                -->
                <Streams>
                    <Request>
                        <Name>org.wso2.apimgt.statistics.request</Name>
                        <Version>1.0.0</Version>
                    </Request>
                    <Response>
                        <Name>org.wso2.apimgt.statistics.response</Name>
                        <Version>1.0.0</Version>
                    </Response>
                    <Fault>
                        <Name>org.wso2.apimgt.statistics.fault</Name>
                        <Version>1.0.0</Version>
                    </Fault>
                    <Destination>
                        <Name>org_wso2_apimgt_statistics_destination</Name>
                        <Version>1.0.0</Version>
                        <BAMProfileName>bam-profile</BAMProfileName>
                    </Destination>
                    <Throttle>
                        <Name>org.wso2.apimgt.statistics.throttle</Name>
                        <Version>1.0.0</Version>
                    </Throttle>
                    <Workflow>
                        <Name>org.wso2.apimgt.statistics.workflow</Name>
                        <Version>1.0.0</Version>
                    </Workflow>
                </Streams>
        
            </APIUsageTracking>
            
            <!-- For APIM implemented Statistic client for DAS REST API -->
            <StatisticClientProvider>org.wso2.carbon.apimgt.usage.client.impl.APIUsageStatisticsRestClientImpl</StatisticClientProvider>
            <!-- For APIM implemented Statistic client for RDBMS -->
            <!--StatisticClientProvider>org.wso2.carbon.apimgt.usage.client.impl.APIUsageStatisticsRdbmsClientImpl</StatisticClientProvider-->
        
        
        Configure analytics in APIM 2.0.x
        In APIM 2.0.x UI based analytics configuration is not available and need to use XML based configuration. APIM 2.0.x it is compatible to APIM analytics by default. APIM analytics is Special distribute of DAS with additional APIM related functionalities. So here we used APIM-analytics and it can be download from here. To configure analytics follow the below steps.
        Open <APIM_HOME>/repository/conf/api-manager.xml
        Find the Tag Analytics in the xml and edit the configuration
        To enable analytics set Enabled value to true
        Set the DASServerURL value according to DAS receiversEx: {tcp://localhost:7612/,tcp://localhost:7613/}
        
        
        Set DASUsername and DASPassword according to DAS receivers
        DASRestApiURL is used to fetch data from DAS REst api
        Set it as according to DAS master node
        Set DASRestApiUsername and DASRestApiPassword accroding to DAS REST
        Leave other configuration as default
        Configure Statistics client
        By default APIM is configured for DAS REST client
        In order to select RDBMS Client set the StatsProviderImpl as follow
        	<!-- For APIM implemented Statistic client for DAS REST API -->
                <StatsProviderImpl>org.wso2.carbon.apimgt.usage.client.impl.APIUsageStatisticsRestClientImpl</StatsProviderImpl>
        
        Since RDBMS client need to define Datasource, define following configuration on both <APIM_HOME>/repository/conf/datasources/master-datasources.xml and <DAS_HOME>
        <datasource>
            <name>WSO2AM_STATS_DB</name>
            <description>The datasource used for registry and user manager</description>
            <jndiConfig>
                <name>jdbc/WSO2AM_STATS_DB</name>
            </jndiConfig>
            <definition type="RDBMS">
                <configuration>
                    <url>jdbc:mysql://localhost:3306/APIM_STAT?autoReconnect=true&</url>
                    <username>root</username>
                    <password>pass</password>
                    <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                    <maxActive>50</maxActive>
                    <maxWait>60000</maxWait>
                    <testOnBorrow>true</testOnBorrow>
                    <validationQuery>SELECT 1</validationQuery>
                    <validationInterval>30000</validationInterval>
                    <defaultAutoCommit>false</defaultAutoCommit>
                </configuration>
            </definition>
        </datasource>