skipper: Index | Files

package apiusagemonitoring

import ""

Package apiusagemonitoring provides filters gathering metrics around API calls

Feature switch & Dependencies

This feature is by default not enabled. To enable it, the flag `-enable-api-usage-monitoring` must be set when Skipper is launched. Also, it does not make sense if none of the metrics implementation is enabled. To use this filter, start skipper enabling at least one metrics flavour. Per instance:

skipper -enable-api-usage-monitoring -metrics-flavour prometheus

This will enable the API monitoring filter through Prometheus metrics.


Due to its structured configuration, the filter accepts one parameter of type string containing a JSON object.

Details and examples can be found at (or in this project, under `docs/reference/`).

Development Helpers

The spec and filter log detailed operation information at `DEBUG` level. The -application-log-level=DEBUG switch is desirable for debugging usage of the filter.

Command line example for executing locally:

make skipper && ./bin/skipper \
	-routes-file "$HOME/temp/test.eskip" \
	-enable-api-usage-monitoring \
	-api-usage-monitoring-realm-keys="" \
	-api-usage-monitoring-client-keys=",sub" \
	-api-usage-monitoring-realmsTrackingPattern-tracking-pattern="services" \
	-metrics-flavour prometheus \
	-histogram-metric-buckets=".01,.025,.05,.075,.1,.2,.3,.4,.5,.75,1,2,3,4,5,7,10,15,20,30,60,120,300,600" \


Package Files

doc.go filter.go noop.go pathinfo.go spec.go


const (
    Name = "apiUsageMonitoring"

func NewApiUsageMonitoring Uses

func NewApiUsageMonitoring(
    enabled bool,
    realmKeys string,
    clientKeys string,
    realmsTrackingPattern string,
) filters.Spec

NewApiUsageMonitoring creates a new instance of the API Monitoring filter specification (its factory).

Package apiusagemonitoring imports 12 packages (graph) and is imported by 3 packages. Updated 2020-12-21. Refresh now. Tools for package owners.