Kong

The Kong Metering Plugin facilitates the capture of API transaction data flowing through Kong gateways for metering, monetization and chargeback.

Building and Installation

To build and install this plugin please obtain the Revenium Metering Plugin. Uncompress the package and run the following commands:

luarocks make
luarocks pack kong-plugin-revenium <RELEASE_VERSION>-1
luarocks install ./kong-plugin-revenium-<RELEASE_VERSION>-1.all.rock

RELEASE_VERSION corresponds to the version of the Kong Metering Plugin Package (ie, 1.10.1)

Enabling the Revenium Metering Plugin

Configuration

The Revenium Kong Plugin accepts the following configuration parameters

ParameterRequiredDescription

source_id

yes

The Revenium ID of the source being metered (found under 'assets' or 'sources' in the Revenium application)

platform_url

no

The URL of the Revenium Platform API (almost always https://api.revenium.io)

platform_api_key

yes

The Revenium API integration key (found in your Revenium account)

subscription_credential_header

no

The header to identify the subscription (default is "clientId")

metadata_request_header

no

Optional HTTP request header to insert additional billing metadata

metadata_response_header

no

Optional HTTP response header to insert additional billing metadata

active_mode

no

If set to "true" API requests will be blocked by the plugin if the consumer is invalid, unfunded, etc.

subscription_cache_timeout

no

When using activeMode the length of time to cache valid consumers.

The Revenium Asset ID can be obtained from the Manage -> Sources pane in the Revenium UI

You can enable the Revenium Metering Plugin on a Kong Proxy by running a curl command similar to the one below:

curl -i -X POST \
--url http://kong-proxy:8001/services/example-service/plugins/ \
--data 'name=revenium-metering' \
--data 'config.platform_url=api.revenium.io' \
--data 'config.platform_api_key=hak_12348A7CC56B123472E' \
--data 'config.source_id=3a49abb3-93e5-495d-a49d-c6008e77c803' \
--data 'config.subscription_credential_header=clientId'

Alternatively the Revenium Metering Plugin can be configured via YAML configuration:

_format_version: "2.1"

_transform: true

services:
- name: random-data
  url: https://mockbin.org/bin/b6f8fc87-5dc0-4f9a-81df-0439282ee422/
  routes:
  - name: my-route
    paths:
    - /

plugins:
- name: revenium
  service: random-data
  config:
      source_id: ef191e46-e9d4-4553-a724-19529427b3c8
      platform_url: https://api.revenium.io
      platform_api_key: **Available in the Revenium UI**

Last updated

© Revenium - www.revenium.io