Hydrolix / Akamai Traffic Peak Plugin
This plugin pushes request/response logs to Hydrolix AKA Akamai Traffic Peak.
Enterprise Feature
Custom logging is available as an add-on as part of an enterprise plan. If you would like to purchase this feature, please contact us at sales@zuplo.com or reach out to your account manager.
Most enterprise features can be used in a trial mode for a limited time. Feel free to use enterprise features for development and testing purposes.
Setup
You can define the fields created in the JSON object by creating a custom type
in TypeScript and a function to extract the field data from the Response,
ZuploRequest, and ZuploContext.
The plugin is configured in the
Runtime Extensions file
zuplo.runtime.ts:
This logger includes a default type and function that logs the following fields:
- deploymentName <string>- The name of the deployment.
- timestamp <string>- The time the log was created.
- requestId <string>- The UUID of the request (the value of thezp-ridheader).
- routePath <string>- The path of the route.
- operationId <string | undefined>- The operation ID.
- url <string | undefined>- The URL of the request.
- statusCode <number | undefined>- The status code of the response.
- durationMs <number | undefined>- The duration of the request in milliseconds.
- method <string>- The HTTP method of the request.
- userSub <string | undefined>- The user sub.
- instanceId <string | undefined>- The instance ID.
- colo <string | undefined>- The colo (datacenter) of the request.
- city <string | undefined>- The city the request origin.
- country <string | undefined>- The country the request origin.
- continent <string | undefined>- The continent the request origin.
- latitude <string | undefined>- The latitude of the request origin.
- longitude <string | undefined>- The longitude of the request origin.
- postalCode <string | undefined>- The postal code of the request origin.
- metroCode <string | undefined>- The metro code of the request origin.
- region <string | undefined>- The region of the request origin.
- regionCode <string | undefined>- The region code of the request origin.
- timezone <string | undefined>- The timezone of the request origin.
- asn <string | undefined>- The ASN of the request origin.
- asOrganization <string | undefined>- The AS organization of the request origin.
- clientIP <string | undefined>- The client IP of the requestor.
- zuploUserAgent <string | undefined>- The Zuplo user agent.
To use this default setup add the following code to your zuplo.runtime.ts
file:
modules/zuplo.runtime.ts
Note, the token (HYDROLIX_TOKEN above) is a
Streaming Auth Token.
If you want to customize the data written to Hydrolix, you can define the fields and entry generation function yourself as follows:
modules/zuplo.runtime.ts
Entries will be batched and sent as an array, they will be sent every
batchPeriodSeconds. If not specified the will be dispatched very frequently
(~every 10ms) to avoid data loss. Note that batchPeriodSeconds can be
specified as a fraction, e.g. 0.1 for every 100ms.