Moesif Tyk API Gateway Plugin
The Tyk plugin for Moesif captures API traffic from Tyk API Gateway and sends to Moesif. This is done via the Tyk Analytics Pump which is an open source component that handles sending API logs to Moesif in an asynchronous way.
For an overview on how the plugin works and use cases, see Tyk + Moesif: the perfect pairing on Tyk’s blog.
Setup
Moesif recommends Tyk Pump v1.1.0 or later for enhanced user tracking and sampling features. The Moesif Tyk integration automatically maps a Tyk Token Alias to a user in Moesif.
-
Follow Tyk’s setup instructions to get a Tyk Gateway instance running. You will also need to set up a Tyk Pump instance, if you haven’t already. Here is the guide for Ubuntu.
-
Create or update your
pump.env
to configure the Tyk Analytics Pump and add Moesif as a backend:
TYK_PMP_PUMPS_MOESIF_TYPE=moesif
TYK_PMP_PUMPS_MOESIF_META_APPLICATIONID=your_moesif_application_id
You can find your Application Id from Moesif Dashboard -> Bottom Left Menu -> Installation -> Tyk API Gateway
- Ensure analytics is enabled
You should ensure detailed analytics recording is enabled in your
tyk.env
file.
TYK_GW_ENABLEANALYTICS=true
TYK_GW_ANALYTICSCONFIG_ENABLEDETAILEDRECORDING=true
Once your config changes are done, you may need to reload your Tyk Pump and Tyk Gateway instances.
Configuration options
The Tyk Pump for Moesif has a few configuration options:
Parameter | Required? | Description | Environment Variable Name |
---|---|---|---|
application_id | required | Moesif Application Id. Multiple Tyk api_id’s will be logged under the same app id. | TYK_PMP_PUMPS_MOESIF_META_APPLICATIONID |
request_header_masks | optional | Mask a specific request header field. Type: String Array [] string | TYK_PMP_PUMPS_MOESIF_META_REQUESTHEADERMASKS |
request_body_masks | optional | Mask a specific - request body field. Type: String Array [] string | TYK_PMP_PUMPS_MOESIF_META_REQUESTBODYMASKS |
response_header_masks | optional | Mask a specific response header field. Type: String Array [] string | TYK_PMP_PUMPS_MOESIF_META_RESPONSEHEADERMASKS |
response_body_masks | optional | Mask a specific response body field. Type: String Array [] string | TYK_PMP_PUMPS_MOESIF_META_RESPONSEBODYMASKS |
disable_capture_request_body | optional | Disable logging of request body. Type: Boolean. Default value is false. | TYK_PMP_PUMPS_MOESIF_META_DISABLECAPTUREREQUESTBODY |
disable_capture_response_body | optional | Disable logging of response body. Type: Boolean. Default value is false. | TYK_PMP_PUMPS_MOESIF_META_DISABLECAPTURERESPONSEBODY |
user_id_header | optional | Field name to identify User from a request or response header. Type: String. | TYK_PMP_PUMPS_MOESIF_META_USERIDHEADER |
company_id_header | optional | Field name to identify Company (Account) from a request or response header. Type: String. | TYK_PMP_PUMPS_MOESIF_META_COMPANYIDHEADER |
bulk_config | optional | JSON map containing the batch writing trigger configuration. | |
bulk_config.api_endpoint | optional | API Endpoint for when setting up client-side encryption via Moesif Secure Proxy. | TYK_PMP_PUMPS_MOESIF_META_BULKCONFIG_APIENDPOINT |
bulk_config.event_queue_size | optional | Specifies the maximum number of events to hold in queue before sending to Moesif. In case of network issues when not able to connect/send event to Moesif, skips adding new events to the queue to prevent memory overflow. Type: int. Default value is 10000 . |
TYK_PMP_PUMPS_MOESIF_META_BULKCONFIG_EVENTQUEUESIZE |
bulk_config.batch_size | optional | Specifies the maximum batch size when sending to Moesif. Type: int. Default value is 200 . |
TYK_PMP_PUMPS_MOESIF_META_BULKCONFIG_BATCHSIZE |
bulk_config.timer_wake_up_seconds | optional | Specifies a time (every n seconds) how often background thread runs to send events to Moesif. | TYK_PMP_PUMPS_MOESIF_META_BULKCONFIG_TIMERWAKEUPSECONDSs |